配置SqlPersistenceServices时,开启MSDTC功能

当数据库服务器和web应用程序服务器不分开时,配置SqlPersistenceServices做持久化服务时需要开启MSDTC.不然会报:已禁用对分布式事务管理器 MSDTC 的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问.

然后就需要将服务器的DCT开启,应用程序计算机的DTC开启,具体方式可以参照下面的方式:

一.对MSDTC组件设置:
步骤:
1.控制面板->管理工具->组件服务->计算机->我的电脑->右键->属性
2. 选择MSDTC页, 确认"使用本地协调器"
3.点击下方"安全配置"按钮
4. 勾选: "允许网络访问","允许远程客户端","允许入站","允许出站","不要求进行身份验证".
5. 对于数据库服务器端, 可选择"要求对呼叫方验证"
停止分布式事务协调器服务,然后重新予以启动。     
停止参与分布式事务的任何资源管理器服务(如   Microsoft   SQL   Server   或   Microsoft   Message   Queue   Server),然后重新予以启动。  
6.在双方防火墙中增加MSDTC.exe例外
可用命令行: netsh firewall set allowedprogram %windir%\system32\msdtc.exe MSDTC enable
7.dtC用到remoting的135端口,确保防火墙没有阻止

调试,可又报另外一个异常:事务已被隐式或显式提交,或已终止.

在网上所查到的方式都用上了,RPC服务开了,135端口开了,MSDTC配置好了,防火墙都关了...

最后,只有在数据库服务器上配置hosts文件(C:\WINDOWS\system32\drivers\etc目录),加一行192.168.1.***  计算机名.
还是不行,再到应用程序中做同样的配置,程序才能正常访问工作流的数据库SqlPersistenceServices.


用微软的DTCping做实验,两台也没有实现ping通,不知道什么原因,但是现在应用程序可以访问其他机子的sql数据库了.工作流得以实现.

有碰到相同问题的队友,告诉我下原因么?谢谢!

你可能感兴趣的:(service)