2007年5月21日星期一

DCOM迷航(一)

为了玩OPC,必须在机器上让DCOM跑起来。使用dcomcnfg这个工具配置DCOM时,发现一选择“COM+应用程序”这个组就会出现一个错误,查看事件查看器,发现了这样一个错误信息:

运行时环境检测到其内部状态存在不一致。这说明进程中存在潜在的不稳定性,可能是由于 COM+ 应用程序中运行自定义组件、COM+
应用程序使用的组件或其他因素引起的。Error in
d:\qxp_slp\com\com1x\src\comsvcs\txprop\dtcinfo.cpp(158), hr = 8000ffff:
TransactionManager->GetWhereaboutsSize
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp
的帮助和支持中心。

一头雾水。不过微软的出错信息就是天书,否则要个那么大型的MSDN做什么?还好,有Google,搜了一下“qxp_slp”,发现了微软自己的一篇文章。大概是说,安装了一个微软的补丁MS05-051后,%windir%\registration目录的权限会出现问题,会导致COM+出现很多问题,其中一个会提示上面这个信息。按照微软的指示,更改了权限后,发现结果还是一样。“COM+应用程序”照样出错。后来醒目一点,把事件查看器里面的打叉的记录一条一条调出来看,发现了一个问题:

正在运行 MS DTC 服务的帐户无效。 如果使用 Microsoft Management Console (MMC)
中的“服务”管理单元更改了服务帐户信息,就会发生这种情况。 MS DTC 服务将继续启动。请确认使用“组件服务管理器”更新了 MS DTC 服务帐户信息。
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp
的帮助和支持中心。


发现这条出错信息之后,才会不断地出现第一条出错信息,看了这是罪魁祸首。同样的,不知道它在说什么。还好,又google了一下,又在微软那里查到了解决办法。在强行为MS
DTC服务创建了NT AUTHORITY\NetworkService登录用户后,一切正常。

1 条评论:

匿名 说...

谢谢作者,你的一篇文解决了我折腾了一天的问题。

MS的帮助全都是天书啊