WCF MSDTC 事务已提升但未执行

发布于 2024-11-09 19:23:23 字数 411 浏览 0 评论 0 原文

我不是 WCF 和 MSDTC 方面的专家,所以希望这很简单。我有一个客户端服务器、一个 Web 服务服务器和一个数据库。我希望能够将对 Web 服务服务器的调用包装在 TransactionScope 内,以便如果操作中出现故障,我可以退出。当所有 3 个组件都位于我的本地计算机上时,此设置工作正常。当我将它们移动到单独的服务器时,一切正常,直到调用位于 TransactionScope 内。

我可以看到在 dcomcnfg -> 下的客户端和 Web 服务服务器上添加了一个事务组件服务->计算机 ->我的电脑 ->分布式事务协调器->本地故障码。我看到两台机器上都显示相同的交易。问题是,它只是等待超时并失败。如果我查看事务日志中本应在 TransactionScope 内发生的 Web 服务调用,则会发现它们并不存在。

我缺少什么?

I am not an expert on WCF and MSDTC so hopefully this is something simple. I have a client server, a web services server and a database. I want to be able to wrap calls to the web services server within a TransactionScope so that if something fails within the operation, I can back out. This setup works fine when all 3 components live on my local machine. When I move them to the separate servers, everything works until a call is within a TransactionScope.

I can see a transaction get added on both the client and web services server under dcomcnfg -> component services -> Computers -> My Computer -> Distributed Transaction Coordinator -> Local DTC. I see the same transaction show up on both machines. Problem is, it just waits for the timeout and fails. If I look at my transaction logs for the web service calls that should have taken have taken place within the TransactionScope, they are not there.

What am I missing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

花想c 2024-11-16 19:23:23

我不建议跨 WCF 服务边界使用 TransactionScope,但如果您必须阅读以下内容:

http://www.stevefenton.co.uk/Content/Blog/Date/200911/Blog/TransactionScope-and-WCF-Services/

I don't advise using TransactionScope across WCF service boundaries but if you must read this:

http://www.stevefenton.co.uk/Content/Blog/Date/200911/Blog/TransactionScope-and-WCF-Services/

梦过后 2024-11-16 19:23:23

我最近在使用 MSDTC 配置 NServiceBus 和 NHibernate 时看到了类似的症状。

我的问题的解决方案涉及检查正在使用的身份验证。

在分布式事务协调器的本地 DTC 中,转到属性并检查安全选项卡。您可能需要启用网络 DTC 访问,或更改所使用的身份验证。尝试不进行身份验证,看看是否有效,并根据需要进行锁定。

I recently saw similar symptoms when configuring NServiceBus and NHibernate with MSDTC.

The resolution for my issue involved checking the authentication being used.

In the Distributed Transaction Coordinator's local DTC, go the the properties and check the Security tab. It may be that you need to enable the Network DTC access, or alter the authentication used. Try with no authentication to see if that works, and lock down as appropriate.

命硬 2024-11-16 19:23:23

在这种情况下,最终是防火墙问题。我推迟了它是防火墙问题的想法,因为我看到事务出现在服务服务器事务列表中,但将分布式事务协调器添加到防火墙中域通信的允许列表中解决了该问题。

In this case, it ended up being a firewall issue. I put off the idea of it being a firewall issue since I was seeing the transaction appear in the service server transaction list but adding the Distributed Transaction Coordinator to the allowed list for domain communication in the firewall fixed the issue.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文