見つけたSQLServerを構成するために見つけたすべてのチェックリストを確認しました。WindowsServer2008とWindows7Proでも同じ問題が発生します。最初の環境:
- SQL Server Express 2012-メインインスタンスとしてインストールされます(つまり、名前付きインスタンスはありません)
- IPアクセスがオンになっている
- SQLServerのファイアウォール例外
- アプリケーションアクセス用のSQLServerユーザー
- Windows Server 2008 Service Pack 2(Windows 7 Service Pack 1でもテスト済み)
- IIS 7(7.5でもテストされ、同じ結果が得られました)
- .NET 4.0
- .NETMVC3アプリケーションに統合された独自のデータベースコード
古いRubyonRailsアプリから新しいASP.NETMVC3アプリにデータをインポートするために開発したツールがあります。このツールは、作成したユーザーアカウントを使用してデータベースに接続できます。そのため、ストアドプロシージャにアクセスするためのいくつかのアクセス許可の問題を発見しました。これは、接続が機能することを確認するために使用しているツールです。
データソース=SERVER_IP、1433;ネットワークライブラリ=DBMSSOCN;データベース=MYDB;ユーザーID=webuser;パスワード=webpassword; multiactiveresultsets = true;
ストレートIPアドレスを使用していますが、インフラストラクチャを保護するために、IP、ユーザー名、およびパスワードを置き換えました。しかし、これは私たちが使用している接続文字列の構造です。チェックリストに従って、インポートツールを使用してネットワーク上の別のマシンからデータベースに接続し、データをインポートすることができました。IISがインストールされているのと同じマシンからデータをインポートすることもできました。
同じ接続文字列は、WindowsServer2008とWindows7Proの両方で恐ろしいエラー26「データベースサーバーが見つかりません」というメッセージを表示します。
SQL Serverへの接続の確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、およびSQLServerがリモート接続を許可するように構成されていることを確認してください。(プロバイダー:SQLネットワークインターフェイス、エラー:26-指定されたサーバー/インスタンスの検索エラー)
私は見つけることができるすべてのリソースを使い果たしました、そして答えにこれ以上近づくことができないようです。私はファイルベースのデータベースをマウントしようとはしていません。IISはどのような場合でもWebアプリケーションへの読み取り/書き込みアクセス権を持っています。
問題の原因としてファイアウォールを除外しました。ファイアウォールをオンにして完全にオフにして設定を試しました。発生している他のアクセス許可レベルの問題が必要です。問題は、チェックする必要のあるアクセス許可レベルがわからないことです。