【问题标题】:cannot deploy c# app with entity framework无法使用实体框架部署 c# 应用程序
【发布时间】:2013-11-26 22:18:55
【问题描述】:

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

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

我使用 installshield 进行设置,并在虚拟机中安装了 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"

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

【问题讨论】:

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


【解决方案1】:

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

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

此外,您在连接字符串中指定了一个Initial Catalog,我假设它指向您的新数据库。但是,您说您在安装过程中创建了数据库 - 因此数据库可能实际上并不存在于您的实例中。这可能会导致它失败。尝试将其从字符串中取出,看看是否可以连接。

【讨论】:

  • 如果我将连接字符串更改为data source=localhost\SQLEXPRESS 并尝试重建我的项目,它不会运行它会引发与我在问题中所说的相同的异常..
  • 可以使用 SQL Management studio express 连接到 SQL 实例吗?
  • 不使用 localhost\SQLEXPRESS 作为服务器名称我无法连接,但使用 localhost 我可以...
  • 奇怪。通常它创建为 \SQLExpress - 尽管在安装过程中可能有一个选项来覆盖它。您在连接字符串中设置了Initial Catalog,该数据库是否存在?
  • 啊,我看错了原帖。我以为您在 安装 期间(即创建数据库时)遇到此异常 - 而不是在运行应用程序时。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-30
  • 2022-06-14
  • 2020-02-15
  • 2019-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多