本文可帮助你解决从 Active Server Pages (ASP) 调用 Microsoft 事务服务器 (MTS) 组件对象模型 (COM) 组件时服务器执行失败的问题
原始产品版本: Internet Information Services
原始 KB 数: 241057
现象
从 ASP 调用 MTS 包的 COM 组件时,可能会间歇性地发生以下错误:
服务器对象错误“ASP 0177 : 80080005”
Server.CreateObject 失败
/xxxx.asp,第 xx 行
服务器执行失败
此错误消息与以下类似的事件日志条目关联:
EventID:4134
源:事务服务器
类型错误:
类别:执行
从对象上下文创建失败:CoGetClassObject (ProgId: xxxx.xxxx) (CLSID: {B57CF3F7-66D3-496A-9D3B-55AE65A952FB}) (接口: IClassFactory) IID: {00000001-0000-0000-C000-0000000000046}) (Microsoft 事务服务器内部信息: 文件: d:\viper\src\runtime\context\ccontext.cpp, 行:1285)
数据(单词):
0000: 80080005
或者,使用 CreateObject
方法而不是 Server.CreateObject
ASP 创建组件时,可能会出现以下错误:
Microsoft VBScript 运行时错误“800a01ad”
ActiveX 组件无法创建对象:“xxxx.xxxx”
/ron/InvPerfStress.asp,第 14 行
原因
当 MTS 服务器包的标识已设置为 Interactive User
时,将发生这种情况。 交互式用户是当前登录到服务器的用户(即承载 MTS 包的计算机)。 当用户注销时,无法创建和执行 MTS 服务器包中的组件,并返回错误。
重现行为的步骤
创建新的 MTS 服务器包并接受默认的交互式用户标识。
将 COM 组件添加到此包。
创建 ASP 页并将其保存在虚拟目录中。
登录到服务器时,从其他计算机上的浏览器请求 ASP 页面。
从服务器注销
从其他计算机上的浏览器再次请求 ASP 页面(或刷新步骤 4 中请求的页面)。
如果使用以下组件创建
Server.CreateObject
组件,则会在浏览器中显示以下错误:服务器对象错误“ASP 0177 : 80080005”
Server.CreateObject 失败
/xxxx.asp,第 xx 行
服务器执行失败登录到服务器并打开 Internet Service Manager,将 MTS 服务器包的标识更改为特定用户。
再次从服务器注销。
从其他计算机上的浏览器再次请求 ASP 页面(或刷新步骤 4 中请求的页面)。
页面按预期工作。
解决方法
将包标识设置为特定用户。
Status
此行为是设计使然。