1

この接続文字列を使用してローカル データベース (同じサーバー上) に接続する EF 5.0 (コード ファースト) を使用する MVC Web アプリケーションがあります。

"Data Source={server}\{instance};Database={database};user id=sa;password={password}"

DbContext が最初に初期化されるときに、データベースが削除され、再作成されます。その後、次の例外がスローされます。

System.Data.ProviderIncompatibleException: データベースからプロバイダー情報を取得中にエラーが発生しました。これは、不適切な接続文字列を使用する Entity Framework が原因である可能性があります。内部例外で詳細を確認し、接続文字列が正しいことを確認してください。---> System.Data.ProviderIncompatibleException: プロバイダーは ProviderManifestToken 文字列を返しませんでした。---> System.Data.SqlClient.SqlException: SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: SQL ネットワーク インターフェイス、エラー: 26 - 指定されたサーバー/インスタンスの検索中にエラーが発生しました)

私は同じサーバー上で別のアプリケーションをホストしました。まったく同じ接続文字列を使用して、正常に接続する古い学校の ADO.Net の方法で SqlConnection オブジェクトを使用してデータベースにアクセスします。

私は同様の投稿をチェックしましたが、すべて私が試したが問題を解決していない多くのことを示唆しています:

  • サーバー インスタンスの TCP/IP エイリアスを追加する
  • ファイアウォールが TCP:1433 および UDP:1434 ポート経由のインバウンド接続を許可していることを確認します
  • サーバー上で SQL Server Browser が実行されていることを確認する
  • 接続文字列が有効であること、および指定されたユーザーが SQL Server インスタンスにアクセスできることを確認してください

全体に奇妙なひねりを加えるだけです。IIS Expressを実行しているワークステーションから同じサーバー上の同じデータベースに接続できますが、サーバーでホストされるとすぐに上記の問題が発生します。

4

0 に答える 0