运行时环境检测到其内部状态存在不一致

2009年12月31日 由 admin 发表在服务器技术

最近一台做虚拟主机的服务器上老是出现以下错误提示:

运行时环境检测到其内部状态存在不一致。这说明进程中存在潜在的不稳定性,可能是由于 COM+ 应用程序中运行自定义组件、COM+ 应用程序使用的组件或其他因素引起的。d:\nt\com\complus\src\comsvcs\threads\staactivity.cpp(805)中的错误,hr = 8000ffff: CSTAActivity: Failed to enqueue work.

运行时环境检测到其内部状态存在不一致。这说明进程中存在潜在的不稳定性,可能是由于 COM+ 应用程序中运行自定义组件、COM+ 应用程序使用的组件或其他因素引起的。d:\nt\com\complus\src\comsvcs\threads\activityworkqueue.cpp(364)中的错误,hr = 8000ffff: CActivityWorkQueue: Failed to bind queue.

运行时环境检测到其内部状态存在不一致。这说明进程中存在潜在的不稳定性,可能是由于 COM+ 应用程序中运行自定义组件、COM+ 应用程序使用的组件或其他因素引起的。d:\nt\com\complus\src\comsvcs\threads\stathreadpool.cpp(1081)中的错误,hr = 8000ffff: CSTAThreadPool: Unable to get bind thread.

运行时环境检测到其内部状态存在不一致。这说明进程中存在潜在的不稳定性,可能是由于 COM+ 应用程序中运行自定义组件、COM+ 应用程序使用的组件或其他因素引起的。d:\nt\com\complus\src\comsvcs\threads\stathread.cpp(272)中的错误,hr = 8007000e: CSTAThread: CoInitializeEx failed

运行时环境检测到其内部状态存在不一致。这说明进程中存在潜在的不稳定性,可能是由于 COM+ 应用程序中运行自定义组件、COM+ 应用程序使用的组件或其他因素引起的。d:\nt\com\complus\src\comsvcs\threads\stathread.cpp(285)中的错误,hr = 8007000e: CSTAThread: CoGetApartmentID failed

在晚上搜索了一大圈,发现大部分的解决办法如下:

开始–运行–输入
regsvr32 ole32.dll
regsvr32 oleauto32.dll
后面一个DLL我没有注册成功,前面一个成功。

开始照以上方法,我的这个错误并没有解决。后来发现了微软自己的一篇文章。大概是说,安装了一个微软的补丁MS05-051后,%windir%\registration目录的权限会出现问题,会导致COM+出现很多问题,其中一个会提示上面这个信息。按照微软的指示,更改了权限后,发现结果还是一样。“COM+应用程序”照样出错。

后来参考了微软《Microsoft 分布式事务协调器服务必须运行在 NT AUTHORITY\NetworkService Windows 帐户在 Windows Server 2003 和 WindowsXP 中》一文,按里边的操作,问题终于解决

4月1日下午6:00

经过一段时间观察,发现以上方法根本没有彻底解决问题后来在网上又搜索了一下,又找到了一个解决办法,目前测试中。

方法如下:

“开始”->“设置”->“控制面板”->“管理工具”->“组件服务”中,“控制台根目录”->“组件服务”->“计算机”->“我的电脑”->“COM+应用程序”中,有一个“IIS Out-Of-Process Pooled”鼠标右键“属性”–“标识”–把“此用户”调整为“交互式用户–目前已登录的用户”。然后“确定”,再鼠标右键“属性”–“启动”。

以上方法的可行性有待测试,如果看到该方法的朋友请谨慎操作。

4月13日

多种方法屡试不爽,每次作过修改几个小时以后,错误依然出现。都重装IIS了,COM+错误还阴魂不散,都TMD快崩溃了。后来一想,是不是因为应用程序池过多,造成COM+太繁忙造成的?一次突发奇想解决了困扰我快一个月的难题。OVER~

广告位

留下评论