我使用。mdf来连接数据库和entityClient。现在我想改变连接字符串,这样就不会有.mdf文件了。

下面的connectionString是否正确?

<connectionStrings>
   <!--<add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQL2008;AttachDbFilename=|DataDirectory|\NData.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />-->
   <add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQL2008;Initial Catalog=NData;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

因为我总是得到错误:

基础提供程序在Open上失败


当前回答

在IIS中将应用程序池身份设置为服务帐户用户或管理员帐户或有权限对该数据库进行操作的蚂蚁帐户。

其他回答

我也有同样的问题,但对我有用的是从连接字符串中删除这个:

persist security info=True

几天前我也遇到了同样的问题,在连接字符串中使用“Integrated Security=True;”,你需要在“localsystem”下运行应用程序池标识。当然,不建议这样做,但对于测试来说,它可以完成工作。

这是在iis7中更改身份的方法: http://www.iis.net/learn/manage/configuring-security/application-pool-identities

我通过重置IIS摆脱了这个问题,但仍然在连接字符串中使用集成身份验证。

我在这里发布了一个类似的问题,使用托管在亚马逊RDS上的SQL 2012数据库。问题是在连接字符串-我有“应用程序名称”和“应用程序”属性在那里。一旦我把它们拿掉,它就起作用了。

实体框架5和Amazon RDS——“底层提供者在Open上失败了。”

context.Connection.Open()没有帮助解决我的问题,所以我尝试在DTC配置中启用“允许远程客户端”,没有更多的错误。

在windows 7中,您可以通过运行dcomcnfg,组件服务->计算机->我的计算机->分布式事务协调器->右键单击本地DTC ->安全来打开DTC配置。