0

VS2012で開発された単純なEF5.0/CodeFirstアプリケーションがあります。開発では、SQLServerCEを使用します。ただし、テストサーバーにデプロイすると、次のエラーのスタックが発生します。

ProviderIncompatibleException: An error occurred while getting provider information from the database. 
This can be caused by Entity Framework using an incorrect connection string.
Check the inner exceptions for details and ensure that the connection string is correct.

ProviderIncompatibleException: The provider did not return a ProviderManifestToken string

SqlException (0x80131904): Login failed for user 'MYDOMAIN\MYSERVER$'

IISとデータベースは同じサーバー(MYSERVER)上にあります。Win2012(IIS8および.NET4.5を使用)およびSQLServer2012を実行しています。

web.configには、私の注意を引いた2つのことがあります。まず、接続文字列。IISUIから生成しました。サーバーではなく、「データソース」を含む古い接続文字列を使用しました。ローカルホストとサーバー名を使用しました。dbユーザーを作成しました。データベースが存在しないことをどこかで読んだので、それを削除しました。データベース内のNTAUTHORITY\NTSERVICEに権限を付与しました。私はおそらく他のいくつかの順列を実行しましたが、結果は常に同じです。

2番目は、EntityFrameworkセクションのConnectionFactoryでした。どうやら、それはWebDeployによって変更されていません。タイプは引き続きSqlCeConnectionFactoryであり、パラメーターはSystem.Data.SqlServerCe.4.0でした。SQL Serverがデフォルトであることがどこかで見られたので、それを削除しました。それが機能しなかった場合は、それに応じて値をSqlConnectionFactoryとSystem.Data.SqlServerに変更しましたが、結果は同じです。

今ではアイデアが足りなくなりました...既存のデータベースからデータを読み取っているときでも問題があることを考えると、単純なものが欠けています...

4

0 に答える 0