部署后首先抛出EF代码抛出ProviderIncompatibleException

时间:2012-12-02 02:24:47

标签: sql-server iis entity-framework-5

我在VS2012中开发了一个简单的EF 5.0 / Code First应用程序。在开发中,它使用SQL Server CE。但是,当我在测试服务器上部署它时,我得到以下一堆错误:

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(使用IIS 8和.NET 4.5)和SQL Server 2012。

web.config中有两件事引起了我的注意。首先,连接字符串。我是从IIS UI生成的;我使用了具有“数据源”的旧连接字符串,而不是服务器。我使用localhost和服务器名称。我创建了一个db用户。我在某处读到数据库不存在 - 所以我删除了它。我在数据库中授予了NT AUTHORITY \ NT SERVICE的权限。我可能做了一些其他的排列 - 但结果总是一样的。

第二个位置是实体框架部分下的连接工厂。显然,Web部署没有改变它; type仍然是SqlCeConnectionFactory,参数是System.Data.SqlServerCe.4.0。我在某处看到SQL Server是默认的 - 所以我删除了它;当这不起作用时,我相应地将值更改为SqlConnectionFactory和System.Data.SqlServer - 但同样,结果是相同的。

到现在为止,我已经没有想法了......即使我从现有数据库中读取数据,我也遇到了问题 - 我错过了一些简单的事情......

0 个答案:

没有答案