0

既存のデータベース(SQLEXPRESS以外)に接続しようとしていますが、アクセスしようとするたびに。次のエラーが発生します。The provider did not return a ProviderManifestToken string.

接続文字列を渡すだけで同じエラーが発生したため、コンストラクターにSqlConnectionインスタンスを渡し、コンストラクターで接続をインスタンス化しています。DbContext(DbConnection, bool)どちらのアプローチでも同じエラーが発生します。

これは、完全なSQLServer2008および2005で発生しています。

更新:以下の私の解決策を読んでください。

概要:受信したときに常に内部例外を探しますプロバイダーがProviderManifestToken文字列を返しませんでした

4

2 に答える 2

1

EFを使用せずにその接続を開いて、接続文字列が正しく、すべてのログイン情報が有効であることを確認してください。EFは、これらのエラーを「プロバイダーがProviderManifestTokenを返さなかった」でマスクすることがあります。この場合、データベースに接続できません。

于 2011-10-28T13:20:09.740 に答える
0

これは接続の問題だったようです。エンティティフレームワークが接続の問題を検出すると、何も意味がないか、実際の問題とは関係のないこのすばらしいメッセージで通知されます。EFは、データベースの初期化でこのエラーを発生させる可能性があります。これは、本番環境でこれが非常に簡単に発生する既存のデータベースを検索するためのアクセス権がない場合です。良いことに、内部の例外が含まれていて、これを理解することができました。

SQLブラウザサービスを有効にした後、サーバーと通信できました。接続に問題があり、サービスを開始すると適切な機能がトリガーされました。サービスは再び停止されますが、接続はまだ稼働しています。

ちなみに、内部の例外は次のとおりです。エラー40 A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, *error: 40 - Could not open a connection to SQL Server)

于 2011-10-28T14:02:21.540 に答える