【问题标题】:EntityFramework throws errorEntityFramework 抛出错误
【发布时间】:2017-10-19 10:38:06
【问题描述】:

我使用 EF6 构建了一个用于查询数据的应用程序。
当我在我的计算机上执行应用程序时,它按预期运行,但在其他计算机上我收到错误消息

我怀疑,没有连接到数据库服务器,尽管我检查了 100 次连接字符串是否正确并且我在我的计算机上工作。

我做错了什么?

【问题讨论】:

  • 你能把上面的错误翻译成英文吗?并输入连接字符串的代码。
  • 数据库服务器在哪里?你没有捕捉到你的连接可能抛出的异常,所以我会首先这样做并显示友好的消息。这样你就知道发生了什么。
  • 数据库不在我的机器上,它在服务器上。我想,我必须传递用户名和密码才能连接到 mssql 服务器。
  • 如果您在 N 层架构中使用 EF 并且不将其存储在顶层,则有时构建不包括 EF 中的所有 DLL。确保 EntityFramework.SqlServer.dll 位于已发布应用程序的 bin 文件夹中
  • 认为你必须传递用户名和密码?你打赌!如果您的连接字符串使用integrated security=True,它使用的是您的本地帐户,当然它不会在其他任何地方工作。您的连接需要有类似User=youruser;Password=something1234

标签: c# entity-framework


【解决方案1】:

您必须将当前的integrated security=True 设置为false 并添加用户名和密码。例如:

connectionString="Data Source=123.123.123.123;Initial Catalog=yourDBName;Integrated Security=False;User=yourUsername;Password=yourPassword"

如果您将该设置保留在 True,则用户和密码将被忽略。

如果您需要更多详细信息,这里有关于连接字符串的站点,在本例中为 MS SQL Server:

https://www.connectionstrings.com/sql-server/

现在,为了改进您的应用程序,我首先建议您使用try-catch 块捕获此异常,以便在发生意外时显示友好消息。

另一个建议是,如果您想为本地和其他计算机中的安装保留不同的连接字符串,您可以保持当前的 Web.config 不变,并添加带有所需修改的 Web.Release.config。这样,当您在“发布”中构建代码时,它将自动在其 Web.config 中具有“公共”连接。有关如何在此处执行此操作的更多信息:

https://stackoverflow.com/a/5811411/2321042

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多