- PR -

ログイン用データベースをレンタルサーバへ移動させた時の接続エラー

1
投稿者投稿内容
いっち
会議室デビュー日: 2006/08/02
投稿数: 8
投稿日時: 2006-08-08 11:17
お世話になります。
VB.NET 2005 + ASP2.NET を使っております。

データベースのリモート接続について教えてください。

ASP.NETより、ASP.NET構成を使いユーザ設定後、簡単にログイン画面を作る事ができました。(ローカルでは、App_Dataの下にASPNETDB.MDFその下にaspnetdb_log.ldfが作成されました。)
ローカルでは、希望した動きをしましたが、Webサイトの発行をFTPよりレンタルサーバへ行い、ファイル構成がアップされたことを確認できました。

特に何も設定せず(素人の為)、インターネットより、ログイン画面を確認できましたが、接続エラーが起こりました。

以下がエラー内容

サーバーへの接続を確立しているときにエラーが発生しました。SQL Server 2005 に接続しているときときにこのエラーが発生した場合は、SQL Server の既定の設定がリモート接続を許可しないようになっていることがエラーの原因である可能性があります。 (provider: SQL ネットワーク インターフェイス, error: 26 - 指定されたサーバーまたはインスタンスの位置を特定しているときにエラーが発生しました)

アップした、データベースのファイルに対して設定(又は、ASP側の設定)が必要と言う事でしょうか?

根本的な間違いがある様にも思えます、ご指導下さい。


どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-08-08 12:15
デフォルトで作成されるASPNETDBへの接続文字列はSQL Server 2005 Express Edition固有の機能を利用するような設定になっています。
まぁ、レンタルサーバ上ではASPNETDBはそのままでは使えないと思ったほうがいいんじゃないでしょうか。

http://dotnetfan.org/blogs/dotnetfanblog/articles/586.aspx
こんな感じでレンタルサーバのデータベース上にASPNETDBと同等の機能を持たせるようにするのがよいかと思います。
いっち
会議室デビュー日: 2006/08/02
投稿数: 8
投稿日時: 2006-08-08 17:29
どっとねっとふぁん様 ありがとうございます。

ご教授の様に設定しましたが、うまく動きません。
権限はフルアクセスになっている事を確認できました。

ASP.NET構成を立ち上げた時に、接続エラーとなります。
(指定データベースを見に行っている様です)
レンタルサーバは、ファーストサーバ(FSDOTNET)のエクスプレス(無料)を利用しています。

Web.Configに下記を追記しましたが、

コード:
<connectionStrings>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer"
connectionString="server=サーバ名;uid=ユーザID;pwd=パスワー  ド;Trusted_Connection=no;database=データベース名"
providerName="System.Data.SqlClient"/>
</connectionStrings>

FSDOTNETから、送られた接続文字列
"server=oldclock0101; database=DB_○○; User ID=L_○○; Pwd=○○; をconnectionStringの文字列に変更すれば良いですよね?

素朴な疑問ですが、
server=××とありますが、この文字列だけで相手をつかむ(レンタルサーバのデータベス接続)できると考えて良いですか?

今回の接続エラーは、下記でした。(ローカルからのログイン接続)

サーバーへの接続を確立しているときにエラーが発生しました。SQL Server 2005 に接続しているときときにこのエラーが発生した場合は、SQL Server の既定の設定がリモート接続を許可しないようになっていることがエラーの原因である可能性があります。 (provider: 名前付きパイプ プロバイダ, error: 40 - SQL Server への接続を開けませんでした)

インターネットからの接続では、errorの値が、26でした。

何が違うのでしょうか?



どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-08-08 18:33
> FSDOTNETから、送られた接続文字列
> "server=oldclock0101; database=DB_○○; User ID=L_○○; Pwd=○○; を
> connectionStringの文字列に変更すれば良いですよね?

もしかして、web.configを書き換えた「だけ」ですか?
oldclock0101サーバ上のDB_○○という名前のデータベース上にASPNETDBと
同じ内容のテーブル、ビュー等を作成する必要があります。
SQLスクリプトを生成して実行する手順ものせていますので、その方法で
できるかどうか試してみてください。

#ファーストサーバでは試したことがないので、どうやればSQLスクリプトを
 実行できるかはわかりません。
いっち
会議室デビュー日: 2006/08/02
投稿数: 8
投稿日時: 2006-08-08 18:46
すみません。インターネットからは、動作確認できました。
(ローカルのASP.NET構築を立ち上げると、接続エラーでした。)

しかし、ASP.NET構築で作成した、内容が反映されていませんでした。
新しくユーザ登録できるログインを作成し、そのユーザで、再ログインは可能でした。

ASP.NET構築を利用する事は可能ですか?

利用者を限定したいと考えています。
また、他の方法で、有効な方法はありますか?
ガギグ
会議室デビュー日: 2002/01/18
投稿数: 11
投稿日時: 2006-08-17 01:12
スレ主ご覧になられていないと思いますが、私も格闘したのでわかる範囲で・・・




> ASP.NET構築を利用する事は可能ですか?

「ASP.NET構築」とは
C:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727\\ASP.NETWebAdminFiles
のことだと思いますが、これはリモートの Web アプリ なり DB の面倒は看てくれないと思います。




> oldclock0101サーバ上のDB_○○という名前のデータベース上にASPNETDBと
> 同じ内容のテーブル、ビュー等を作成する必要があります。
> SQLスクリプトを生成して実行する手順ものせていますので、その方法で
> できるかどうか試してみてください。
>
> #ファーストサーバでは試したことがないので、どうやればSQLスクリプトを
>  実行できるかはわかりません。

http://sv01.fsdotnet.net/dbmgr/
ここから入って、左側に Databases, Security, Server Objects, Management, Tools とあって
Tools の中にある New Query をクリックすると、SQL スクリプトを流し込む画面が出てきました。

が、同じ内容のテーブル、ビューを作るなら、
https://order.fsdotnet.jp/express/aspnetregsql01.aspx
ここからでした。




> 素朴な疑問ですが、
> server=××とありますが、この文字列だけで相手をつかむ(レンタルサーバのデータベス接続)できると考えて良いですか?

私はつかめませんでした。
Visual Studio IDE に組み込まれている Visual Database Tools (だっけか?)が使えないから面白くないんですよね・・・




> 利用者を限定したいと考えています。
> また、他の方法で、有効な方法はありますか?

aspnetdb.mdf や ログインコントロールは実は難しい(と私は感じた)ので自分で利用者を限定するコードを書いたほうが楽なんじゃないかなぁ・・・
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2006-08-17 06:27
引用:

aspnetdb.mdf や ログインコントロールは実は難しい(と私は感じた)ので自分で利用者を限定するコードを書いたほうが楽なんじゃないかなぁ・・・


ASP.NET 2.0を利用するなら、ASPNETDB.mdfは必須と考えた方がよいのではないでしょうか。ASPNETDBがないと、ASP.NET 2.0の売りのセキュリティ、プロファイル、Webパーツ、パーソナライゼーションが利用できません。

それから、
https://order.fsdotnet.jp/express/AspNetRegSql01.aspx
を実行して、aspnet_?????などのテーブルを作成したら

https://sv02.fsdotnet.net/dbmgr/

から「myLittleAdmin for SQL Server 2005」を起動して以下のスクリプトを実行
する必要があります。「XXXXXXX」は、アカウント名と置換します。

exec sp_addrolemember 'aspnet_Membership_FullAccess','U_XXXXXXXX'
exec sp_addrolemember 'aspnet_Personalization_FullAccess','U_XXXXXXXX'
exec sp_addrolemember 'aspnet_Profile_FullAccess','U_XXXXXXXX'
exec sp_addrolemember 'aspnet_Roles_FullAccess','U_XXXXXXXX'
exec sp_addrolemember 'aspnet_WebEvent_FullAccess','U_XXXXXXXX'

詳細は、WebサイトのPDFを参照してください。


_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2006-08-17 10:16
Accessさん、お早うございます。

引用:

ASP.NET 2.0を利用するなら、ASPNETDB.mdfは必須と考えた方がよいのではないでしょうか。ASPNETDBがないと、ASP.NET 2.0の売りのセキュリティ、プロファイル、Webパーツ、パーソナライゼーションが利用できません。



いや、そんな事は…。レンタルサーバとか、DBの利用が不可な場合とか、XML ファイルをデータストアに使ったり出来そうな気がします。
ASP.NET プロファイル プロバイダ
プロファイル プロバイダの実装
1

スキルアップ/キャリアアップ(JOB@IT)