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


当前回答

对我来说,这只是一个简单的错误:

我使用Amazon EC2,我在连接字符串中使用了我的弹性IP地址,但是当我更改IP地址时,我忘记更新我的连接字符串。

其他回答

我犯了一个常见的错误,因为我把应用程序从一台pc移动到另一台pc,上面没有一个工作,我忘记把连接字符串复制到App.Config和Web.Config!

由于连接状态,我遇到了类似的异常问题,然后我意识到我的域服务类变量被标记为静态(错误地)。

我的猜测是,一旦服务库加载到内存中,每个新调用最终都会使用相同的静态变量值(域服务实例),从而通过连接状态引起冲突。

我还认为每个客户端调用都会产生一个新线程,因此多个线程访问同一个域服务实例就相当于火车失事。

确保所提供的连接字符串中的每个元素值都是正确的。在我的例子中,我得到了相同的错误,因为在连接字符串中指定的目录名称(数据库名称)不正确。

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

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

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

persist security info=True