【问题标题】:Connection String doesn't work on the server, works everywhere else连接字符串在服务器上不起作用,在其他任何地方都有效
【发布时间】:2011-07-18 13:59:21
【问题描述】:

我的连接字符串如下所示:

Data Source=mydomain.com;Initial Catalog=DB;Integrated Security=True

这适用于我们的机器 - 除非此代码在服务器上运行。我收到这条消息: '登录失败。登录来自不受信任的域,不能与 Windows 身份验证一起使用'

如果我将连接字符串数据源更改为本地:

Data Source=.;Initial Catalog=DB;Integrated Security=True

它在服务器上运行良好 - 但显然不能在我们的其他计算机上运行。

我知道这对于 serverfault 来说可能是一个很好的问题 - 但在这里认为它更好,因为它可能是一个简单的软件解决方法来修复它。我们没有域/活动目录 - 只有几台 PC 设置了与服务器上相同的凭据。

我确实检查了防火墙(在服务器上将其关闭),但出现了同样的错误。

关于如何解决这个问题的任何想法?

【问题讨论】:

  • 您应该放置连接字符串等。在未硬编码到软件中的配置文件中。
  • mydomain.com 在服务器上是否正确解析?您是否尝试将 mydomain.com 添加到本地 Intranet 区域?您是否尝试将mydomain.com 设置为已知环回地址?
  • Web 应用程序是否配置为在有权访问服务器/数据库的用户下运行?
  • Steve:域确实在服务器上正确解析。不知道如何设置本地 Intranet 区域,这是一个 winform 应用程序。设置IP地址修复它。谢谢! Ash-连接字符串在应用程序的“设置”中。 Lasse:是的——两台机器上都是同一个用户(我)——当连接字符串是本地的时工作正常。

标签: .net sql-server-2008 windows-server-2008


【解决方案1】:

尝试使用插入服务器名称的服务器 IP - 数据源=x.x.x.x; 还要确保防火墙对外部连接开放:http://msdn.microsoft.com/en-us/library/cc646023.aspx

【讨论】:

  • 谢谢 - 设置 IP 地址有效。有没有办法避免这样做呢?我们希望能够在中断等情况下更新域 - 但如果我们硬编码 IP 地址,将无法做到这一点。
  • 您可以更新位于以下位置的应用程序/Web 服务器主机文件:C:\Windows\System32\drivers\etc 您需要在文件末尾添加行 - x.x.x.x yourdomain.com
  • 编辑 hosts 文件并没有更正此问题。如果我对 IP 地址进行硬编码,它可以正常工作。如果我 ping 域,它会正确解析为 IP 地址,我怀疑这就是为什么编辑主机文件没有更正它的原因。它解析为 IP - 但给出“不受信任的域,没有 Windows 身份验证”错误。我确实确认我正确编辑了主机文件(以管理员身份)。有什么建议吗?
  • 发生这种情况是因为开发人员的帐户有权访问 SQL Server,但运行 IIS 的帐户没有访问权限 - 请阅读:blogs.msdn.com/b/sql_protocols/archive/2008/05/03/…
  • 这是一个不使用 IIS 的 winforms 应用程序 - 所以我认为这不是问题所在。将 IP 地址放在连接字符串中现在可以正常工作,这很棒。我修补了 SQL 服务器(Service Pack),所以我想知道这是否与它有关......
猜你喜欢
  • 2013-08-02
  • 1970-01-01
  • 2019-10-27
  • 1970-01-01
  • 1970-01-01
  • 2018-04-02
  • 2021-09-07
  • 2019-09-29
  • 1970-01-01
相关资源
最近更新 更多