无法在经典ASP / VBScript页面中实例化.Net COM对象(错误ASP 0177)

时间:2009-10-05 09:14:08

标签: .net asp-classic com-interop createobject

我使用.Net 3.5在C#中编写了一个支持COM interop的类库。该对象旨在为经典ASP页面提供一些实用程序功能。我编写了一个test.asp页面,该页面实例化了所需的对象并调用了它的方法。在我的机器上正常工作。

在另一台计算机(Windows Server 2003 - 标准版)上,虽然正确地向regasm注册了程序集,但它无法正常工作。我已经检查了注册表并且看起来没问题。

我得到的错误是“ASP 0177”(错误代码),“8000ffff; Server.CreateObject-Fehler”(错误描述),转换为Server.CreateObject-Error。

顺便说一下。程序集已签名,并且没有任何其他自定义构建程序集作为依赖项(只是系统内容)。

有没有人经历类似的事情?

3 个答案:

答案 0 :(得分:6)

授予IUSR用户(或您的IIS用户是谁)对以下注册表项的读访问权限,并为我解决了问题。

HKEY_USERS\S-1-5-20\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones

答案 1 :(得分:2)

我认为这是一个安全问题。您似乎已经开发并测试了自己电脑中的组件,与服务器(通过示例安装Visual Studio)相比,它们有很多不同之处。


编辑:请看一下这个Microsoft“Hotfixes a hotfix”:

答案 2 :(得分:1)

  • 找到并单击以下注册表子项: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ MAIN \ FeatureControl \ FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701
  • 注意如果FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701子项不存在,则必须手动创建它。如果您使用的是64位操作系统,则可能需要使用HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ MAIN \ FeatureControl \ FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701
  • 右键单击FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701, 指向“新建”,然后单击“DWORD值”
  • 键入w3wp.exe以命名新的注册表项,然后按Enter。
  • 右键单击“w3wp.exe”,然后单击“修改”。
  • 在“数值数据”框中,键入1,然后单击“确定”。

设置此注册表项后,将重新启动一个简单的应用程序池。除了改组应用程序池之外,您的.NET COM组件不再会随机停止工作而没有真正的解决方案!