在Windows 2003上部署.NET Framework1.1开发的COM+程序碰到的问题

来源:互联网 发布:微信企业号授权 java 编辑:程序博客网 时间:2024/05/20 07:59

之前写了个ASP.NET程序使用了COM+。在Win2000 和XP上部署一直都很好用。但是今天项目小组的同事在使用这个模块式就碰到了问题,每次使用COM+提交数据时都报了这么个错误“[COMException (0x8004d00e): 此事务已明地或暗地被确认或终止]”。

一开始莫名其妙,服务早就注册了、角色账号也加了就是不行。后来上http://support.microsoft.com 查了半天终于发现有篇关于BizTalk的KB地描述和我的情况十分相像。照着里面的说法修改了一下注册表的HKey_Local_Machine/Software/Microsoft/MSDTC里面增加了一个DWord的Subkey TurnOffRPCSecurity并将数值设置为1。然后重起MSDTC和IIS终于把问题解决了。

以前在使用XP Sp2时也遇到过这问题,不过那时候以为是Sp2不稳定,就没注意。今天狠狠地查了一下资料终于解决了这个鬼问题。应该是Win2003和XP的Sp2都在安全性方面考虑了更多问题所以当COM+使用RPC通信时碰到了问题。具体原因还没时间去深究。其实这个错误如果打开了防火墙把这些通信都屏蔽掉的话也会发生。

第一次写Blog,不想说什么,就是怕自己以后再碰到这个问题忘了怎么解决的时候也能方便得找到。毕竟在Google上搜了半天也没找到问题的正解。去年在解决一个MS CMS的License的问题是也是这样,找了很多资料才解决了问题,结果没有好好记录下来。现在如果再碰到这个问题也好慢慢想想才能找回答案。