分布式事务出错解决过程(System.Transactions;)
1. 关闭防火墙,windows自带防火墙和360等防火墙都关闭
2. 打开两台机器的DTC和RPC服务(Distributed Transaction Coordinator & Remote Procedure Call (RPC))
3. 两台机器都打开cmd,并都ping 对方的名字(例如:ping xxx_server),如果ping 不通,那么需要在host文件中添加一条记录(如:192.168.0.1 xxx_server)
4. 打开DTC的网络访问,方法如下:
先运行“Dcomcnfg.exe”打开组件服务,然后:windows 7: 组件服务->计算机->我的电脑->Distributed Transaction Coordinator->本地DTC->右键(属性)->选择“安全”选项卡->勾选“网络DTC访问”、“允许入站”、“允许出站”、“不要求身份验证”、启用事务Internet协议(TIP)事务 windowsXP/2003: 组件服务->计算机->我的电脑->右键(属性)->选择MSDTC选项卡->点击“安全配置”->勾选“网络DTC访问”、“允许入站”、“允许出站”、“不要求身份验证” 、启用事务Internet协议(TIP)事务
5.单击“开始”,单击“运行”,键入“gpedit.msc”,然后单击“确定”,打开组策略。 打开组策略后,选择“计算机配置->管理模板->系统(有可能你的电脑上没有此选项,那么右键加一个)->远过程调用->用于未验证的RPC客户端的限制”。 双击“用于未验证的RPC客户端的限制”,在弹出的右键菜单里选择“属性”。 在弹出的“属性”对话框里选择“设置”属性页,选择“已启用”、“要应用的RPC运行时未验证的客户端限制”选择“无”。 单击“确定”完成设置,重启电脑。
6. 先到http://www.microsoft.com/en-us/download/confirmation.aspx?id=2868
下载DTCPing.exe并解压,在需要调试的两台机器上都要运行此程序。
Ping对方,应该都能成功了,如果不成功请告诉我。
附赠:RPC无法启动解决办法:为 rpcss.dll设置 everyone的完全控制权限,手动启动rpc服务和network connections服务,成功后重启机器,症状消失。