我使用。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摆脱了这个问题,但仍然在连接字符串中使用集成身份验证。

其他回答

你可以尝试替换元数据:

元= res: / / conString.csdl | res: / / conString.ssdl | res: / * / conString.msl

to:

元数据=因素:/ / * /;

我已经用这种方法解出来了。

步骤1: 打开Internet信息服务管理器

步骤2: 单击左侧导航树中的应用程序池。

步骤3: 选择您的版本池。在我的情况下,我使用的是ASP . net v4.0。如果你没有这个版本,选择DefaultAppPool。

步骤4: 右键单击步骤3,并选择高级设置。

步骤5: 在属性窗口中选择Identity并单击按钮更改值。

步骤6: 在“内置帐户”组合框中选择“本地系统”,单击“确定”。 就是这样。现在运行应用程序。一切都很顺利。

代码项目解决方案:底层提供者-failed-on-open

我在Windows Server 2003上的SQL Server Express Edition遇到了类似的问题。我只是在数据库安全性中以用户身份添加了网络服务。

SQL Server Express服务未设置为自动启动。

1)进入控制面板 2)管理工具 3)服务 4)将SQL Server express设置为自动启动 5)右键单击,启动服务

我希望这能有所帮助。

如果还原数据库时用户已经存在,且模式不同,导致无法分配正确的权限,也会发生这种情况。

要纠正此运行:

USE your_database
EXEC sp_change_users_login 'Auto_Fix', 'user', NULL, 'cf'
GO
EXEC sp_change_users_login 'update_one', 'user', 'user'
GO