【问题标题】:Error when connecting to remote sql database from service, but can from other apps从服务连接到远程 sql 数据库时出错,但可以从其他应用程序连接
【发布时间】:2016-01-17 20:33:19
【问题描述】:

我们将我们的数据库移动到一个单独的服务器上,它与 web、api、几个控制台应用程序和一个 Windows 服务(msmq、rhino)位于同一台服务器上

以上所有,除了服务可以连接数据库就好了。

但是服务(rhino 服务总线,消费消息)给出“与底层事务管理器的通信失败”。尝试建立数据库连接时出错。

我尝试过的事情 * 各种连接字符串(顺便说一句,使用服务器的 ip 地址,但就像我说的,这适用于其他应用程序) * 以网络服务、本地系统、管理员身份运行服务 * 在应用程序(旧服务器)和数据库(带有数据库的新服务器)上配置 MSDTC。对MSDTC一无所知,但如果在网上找到,请遵循“帮助”。 * 注释掉服务中的所有代码,只尝试打开连接(以防代码出现问题)

以上所有都导致完全相同的错误。

这里真的很绝望。晚上很晚,早上应该一切顺利.. :-(

【问题讨论】:

  • 不管怎样,我可以毫无问题地从 sql management studio 连接到新服务器上的数据库。
  • 我在连接到远程服务和使用 MSDTC 时看到了这个错误。我坚信问题出在 MSDTC 上。 MSDTC 是一种促进应用程序之间以及服务器之间的分布式事务的服务。我会坚持让您再次检查两台服务器中的 MSDTC 设置。 1) 两台服务器都必须在服务中启动 MSDTC。 2) 数据库服务器的 MSDTC 应该支持 MSDTC 属性中的远程连接。我将很快在答案部分中获得详细信息。同时,您能再检查一下吗?
  • 让我把我的问题缩短一点。当您设置 DTC 时,您是否尝试在管理工具中设置本地 DTC 属性?
  • 没错。 (仅供参考:“应用服务器”是 2008 年,“数​​据库服务器”是 2012 年)
  • Compnent Services => Computers => My Computer => Distributed Transaction Coordinator => Local DTC => Right Click, Properties => Security Tab Network DTC Access, Allow Remote Clients, Allow Remote Admin, Allow Inbound , 允许出站, 不需要 Auth, 启用 XA 事务, 启用 SNA ...事务登录帐户是 NetworkService

标签: c# sql-server-2012 windows-services remote-server


【解决方案1】:

转到组件服务 => 计算机 => 我的电脑 => 分布式事务协调器 => 本地 DTC => 右键单击​​,属性 => 安全选项卡。在两个服务器中启用屏幕截图中的设置。

【讨论】:

    猜你喜欢
    • 2019-11-07
    • 2020-06-02
    • 1970-01-01
    • 2017-08-21
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    • 2015-11-19
    相关资源
    最近更新 更多