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


当前回答

你可以尝试替换元数据:

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

to:

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

其他回答

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

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

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

我有一个类似的错误与内部异常如下:

操作对于事务的状态无效

我可以通过启用DTC安全设置来解决这个问题。

转到DTC的属性,在安全选项卡下,检查以下内容

网络DTC接入 允许RemoteClients 事务管理器通信 允许入站 允许出站

我犯了这个错误,并找到了一些解决方案:

查看连接字符串,它看起来是有效的。我发现了这篇博客文章,这里的问题是他们使用了集成安全系统。如果您在IIS上运行,您的IIS用户需要访问数据库。

如果您使用实体框架与事务,实体框架自动打开和关闭连接与每个数据库调用。因此,在使用事务时,您试图将事务分散到多个连接上。这提升到MSDTC。

(更多信息请参见参考资料。)

更改我的代码如下固定:

using (DatabaseEntities context = new DatabaseEntities())
{
    context.Connection.Open();
    // the rest
}

我有这个问题,因为应用程序池登录这个应用程序正在运行下已经改变。

在IIS:

通过单击站点并进入基本设置来查找应用程序池。 进入应用程序池。 单击站点的应用程序池。 单击高级设置。 在“身份”中输入帐号登录名和密码。 重新启动站点并重试。

我在网上搜索这个问题。我在连接字符串中输入了错误的名称,请检查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" />