我使用。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上失败


当前回答

当您收到这个异常时,请确保展开详细信息并查看内部异常详细信息,因为它将提供关于登录失败原因的详细信息。在我的例子中,连接字符串包含一个没有访问我的数据库的用户。

无论您使用的是集成安全(登录Windows用户的上下文)还是个人SQL帐户,请确保该用户在“安全”下对您试图访问的数据库具有适当的访问权限,以防止此问题。

其他回答

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

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

在我的情况下,我在上下文的构造函数中注册的连接字符串名称与我的web.config中的名称之间不匹配。简单的复制粘贴错误:D

    public DataContext()
        : base(nameOrConnectionString: "ConnStringName")
    {
        Database.SetInitializer<DataContext>(null);
    }

我在网上搜索这个问题。我在连接字符串中输入了错误的名称,请检查web.config中的连接字符串。我有name="AppTest",但它应该是name="App"。

在我的AppTestContext.cs文件中我有:

public AppTestContext() : this("App") { }

错误的连接字符串:

<add connectionString="Data Source=127.0.0.1;Initial Catalog=AppTest;Integrated Security=SSPI;MultipleActiveResultSets=True" name="AppTest" providerName="System.Data.SqlClient" />

右连接字符串:

<add connectionString="Data Source=127.0.0.1;Initial Catalog=AppTest;Integrated Security=SSPI;MultipleActiveResultSets=True" name="App" providerName="System.Data.SqlClient" />

我有这个错误突然发生在我们的一个网站上。在我的例子中,结果是SQL用户的密码过期了!在SQL Server Management Studio中取消密码过期框是有效的!

我也面临着同样的问题。现在我已经从连接字符串中删除了用户名和密码。