@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

テストサーバーでテスト開始でSQLが読めない??

1
投稿者投稿内容
SL
大ベテラン
会議室デビュー日: 2008/05/02
投稿数: 183
投稿日時: 2008-07-03 16:14
お世話になります。

作成したアプリをテスト用のサーバーに配置してテスト使用と思い試しているのですが次のようなエラーメッセージを返してきます。
「例外の詳細: System.Data.SqlClient.SqlException: サーバーへの接続を確立しているときにエラーが発生しました。SQL Server 2005 に接続しているときときにこのエラーが発生した場合は、SQL Server の既定の設定がリモート接続を許可しないようになっていることがエラーの原因である可能性があります。 (provider: SQL ネットワーク インターフェイス, error: 25 - 接続文字列が有効ではありません)」

今出来ていると思われることは、テストサーバ(Windows 2000 IIS 6.0)に配置してつながっている他のパソコンよりアクセスしてトップページ(ログイン画面)が表示しています。
ここでパスワードなど入れると上記エラーが出ます。
ASPNETDBは、そのフォルダー内に App_Data を作りコピーしてあります。
また、SQL Serverセキュリティ構成で「ローカル接続およびリモート接続」「TCP/IPおよび名前付きパイプ使用」で開始しています。
また、ここで表示しているデータベースの名前が、「MSSQLSERVER」となっています。

配置したWeb.Configの ConnectionString は、
<connectionStrings>
<add name="ScheduleConnectionString" connectionString="Data Source=.\MSSQLSERVER;AttachDbFilename=C:\Inetpub\wwwroot\www\App_Data\Schedule.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True" providerName="System.Data.SqlClient"/>
<add name="MySqlConnection" connectionString="Data Source=MySqlServer;Initial Catalog=aspnetdb;Integrated Security=SSPI;" </connectionStrings>

以上よろしくお願いします。
ASP.NET C#
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-07-03 17:09
> ASPNETDBは、そのフォルダー内に App_Data を作りコピーしてあります。

このASPNETDBに関するコネクションストリングの設定がないように見えますが。
SL
大ベテラン
会議室デビュー日: 2008/05/02
投稿数: 183
投稿日時: 2008-07-04 10:08
お世話になります。

> このASPNETDBに関するコネクションストリングの設定がないように見えますが。
たぶん、開発環境で有効だった下記の部分だと思います。
<add name="MySqlConnection" connectionString="Data Source=MySqlServer;Initial Catalog=aspnetdb;Integrated Security=SSPI;"
ここを書き換えればいいと思いましたが、うまくいきません。data source= に続く文を上記同様のパスに変更しても無駄なようでした。
調べている中で http://www.connectionstrings.com/?carrier=sqlserver2005 
がありここにも ASPNETDB の文字が見当たりません。
固有のコネクションストリングか何かあるのですか?
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-07-04 12:04
> たぶん、開発環境で有効だった下記の部分だと思います。

ちがうと思います。
ASPNETDBに関するコネクションストリングはデフォルトでマシンレベルで設定されています。
ただ、その設定は開発環境用になっているので、サーバ上では必要な形に自分で設定しなおす必要があります。

このあたり、サーバにインストールされているSQL Serverのエディションとかによっても記述を変えないといけません。
DBサーバの設定等についてよく調べてみられることをお勧めします。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-07-04 12:06
ああ、Initial Catalog=aspnetdb ってなってるから、これでいいのか?
だとすれば、あとは実際にインストールされているSQL Serverとの関係で正しいコネクションストリングになっていない、ということでしょうね。

DB関係の知識は必須なので、この際きちんと調べてみることをお勧めします。
SL
大ベテラン
会議室デビュー日: 2008/05/02
投稿数: 183
投稿日時: 2008-07-11 14:03
お世話になります。

「接続できない」といった内容でネット上を調べてみましたが、私とおなじ理由で接続できないという内容がなく未だにうまくいってません。

現在のエラー内容は、
「ユーザー インスタンスのプロセスを起動中のエラーにより、SQL Server のユーザー インスタンスを生成できませんでした。接続は閉じられます」
です。Web.Config の内容だけでない気がして、SQL Server Management Studio なども見て コンピュータ名\SQLEXPRESS に接続し 「セキュリティ」「ログイン」にコンピュータ名\ASPNET を追加し「サーバーロール」の dbcreater, public にチェックしました。まだ、上記のエラーが出ます。

そこで、トップページのログインをパスさせ次のページを強制的に表示させると下記のようになります。(単に、別のファイルの名前をLogin.aspxに変更しただけ)
「物理ファイル "C:\Inetpub\wwwroot\www\App_Data\Schedule.mdf" を開けません。オペレーティング システム エラー 5: "5(アクセスが拒否されました。)"。
ファイル C:\Inetpub\wwwroot\www\App_Data\Schedule.mdf の自動的に名前が付けられたデータベースをアタッチできませんでした。同じ名前のデータベースが既に存在するか、指定されたファイルを開けないか、UNC 共有に配置されています。 」

まだ、ほかに設定など忘れているところがあるのでしょうか?おしえてください。
これも必要かわかりませんが、aspnet_sqlreg.exe も同様に試してあります。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-07-11 14:25
エラーメッセージに何が問題かは書いてありますが。
あとはデータベース系の知識が足りないために、どのようにして解消していいかわからない、ということでしょうね。
このあたり、個々の環境によって対応方法は変わってきますので、なんともいいようがないなぁ。。。

aspnet_sqlreg.exe を試している、とのことなので問題はコネクションストリングの記述にあるような気がしますが、これもどのような環境を構築しているかによって変わってくるしなぁ。

で、もう一度同じことを。
DB関係の知識は必須なので、この際きちんと調べてみることをお勧めします。

調べるだけでなく、理解するためにどうしたらよいか考えてみましょう。
あと、ネット上で調べることですべてが解決できるわけではない、ということも認識しておいたほうがいいと思いますけどね。

#まぁ、最後のは蛇足か。
SL
大ベテラン
会議室デビュー日: 2008/05/02
投稿数: 183
投稿日時: 2008-07-11 20:02
お世話になります。

お勧めの書籍などありますでしょうか?
1

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