无法使用实体框架部署c#app

时间:2013-11-26 13:25:58

标签: c# sql sql-server entity-framework

我已经完成了一个桌面c#项目,其中我使用了Entity framework 5和SQL server 2008 在我的机器上它运行良好,但我创建了一个虚拟机,并试图在那里部署它,我有问题。

我收到此错误: System.Data.EntityException:基础提供程序在Open上失败。 ---> System.Data.SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。 服务器未找到或无法访问。 验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。

我使用了installshield进行设置,我在visrual机器上安装了sql express,在设置过程中我创建了数据库和所有表。

我的连接字符串是:name="BussinessContainer" connectionString="metadata=.\Bussiness.csdl|.\Bussiness.ssdl|.\Bussiness.msl;provider=System.Data.SqlClient;provider connection string="data source=localhost;initial catalog=yingyangDB;User ID=username;Password=password;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient"

我应该更改连接字符串吗? 在发布之前我搜索了很多,但没有任何效果......有什么帮助?

1 个答案:

答案 0 :(得分:0)

SQL Express(通常)不会创建为“默认实例” - 即通过localhost连接不足以连接到本地SQL express实例。

您可能需要使用localhost\SQLExpress连接到本地SQL Express实例(实例名称​​可能不同,但通常不是。

此外,您在连接字符串中指定Initial Catalog,我假设它指向您的新数据库。但是,您说您在安装期间创建了数据库 - 因此您的实例中可能尚未存在数据库。这可能会导致它失败。尝试将其从字符串中删除,看看是否可以连接。