さて、ここで関連する質問をたくさん読んで、グーグルで調べましたが、これを理解できません。
クライアントの 1 人が、Sql Server とサイトのデータベースも実行しているサーバー上に Web サイトをセットアップすることを望んでいます。つまり、同じボックスです。
ただし、Web サイトはデータベースに接続できず、次のエラーが発生します。
SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: SQL ネットワーク インターフェイス、エラー: 26 - 指定されたサーバー/インスタンスの検索中にエラーが発生しました)
また、Windows イベント ログを調べて、さらに情報が得られるかどうかを確認しましたが、追加情報なしで同じメッセージを単純に再表示しました。
サーバーは Windows Server 2008 Standard です。
IIS は、そのバージョンの Windows に含まれる IIS バージョンです。
Sql Server は Sql Server 2008 R2 Standard Edition です。
Sql Server に接続するために作成したデータ アクセス ライブラリがあります。
Remote Connections
Sql Serverでオンに なっていることを確認しました(同じボックスですが)。SQL and Windows Authentication
Sqlログインを許可するためにオンになっ ていることを確認しました。- テスト Windows アプリを使用して、接続文字列とデータ アクセス レイヤーを確認しました。
- PortQryUI を使用して、SQL Server が利用可能であることを確認しました。
次のような接続文字列のさまざまなバリエーションも試しました。
- マイサーバー\インスタンス
- ローカルホスト\インスタンス
- 127.0.0.1\インスタンス
- (ローカル)\INSTANCE
- tcp:(ローカル)\INSTANCE
- np:(ローカル)\INSTANCE
- 。\実例
- MY.PUB.IP.ADD\INSTANCE
したがって、Sql Server は適切にセットアップされているようです。
私のテスト用 Windows アプリは正常に動作し、接続文字列が正しく、データ アクセス レイヤーが接続できることを確認しています。
これは特に IIS に関係しているように思われ、そこにある設定が接続をブロックしているに違いありません。
追加:
Windows ファイアウォールが実行されていません。
Sql ブラウザ サービスが実行されています。
サーバー構成では、すべてのネットワーク プロトコルが有効になっています。
System.Data.SqlClient.SqlConnectionStringBuilder
オブジェクトを使用して接続文字列を作成しています。Sql 認証が使用されていることを確認するために、ビルダーから返される ConnectionString を出力します。
Data Source="(local)\INSTANCE";Initial Catalog=mydb;User ID=myuser;Password=mypassword