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

无法在经典ASP/VBScript页面中实例化.Net COM对象(错误ASP 0177),.net,asp-classic,com-interop,createobject,.net,Asp Classic,Com Interop,Createobject,我使用.NET3.5在C#中编写了一个支持COM互操作的类库。该对象旨在为经典ASP页面提供一些实用功能。我已经编写了一个test.asp页面,它实例化所需的对象并调用其方法。在我的机器上很好用 在另一台计算机(Windows Server 2003-标准版)上,即使程序集已正确注册到regasm,它也无法工作。我已经检查了注册表,看起来还可以 我得到的错误是“ASP 0177”(错误代码),“8000ffff;Server.CreateObject-Fehler”(错误描述),它转换为Serv

我使用.NET3.5在C#中编写了一个支持COM互操作的类库。该对象旨在为经典ASP页面提供一些实用功能。我已经编写了一个test.asp页面,它实例化所需的对象并调用其方法。在我的机器上很好用

在另一台计算机(Windows Server 2003-标准版)上,即使程序集已正确注册到regasm,它也无法工作。我已经检查了注册表,看起来还可以

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

顺便说一句,程序集是经过签名的,没有任何其他自定义生成程序集作为依赖项(只有系统内容)


有人经历过类似的事情吗?

我认为这是一个安全问题。似乎您已经在自己的pc上开发并测试了该组件,这与服务器(通过示例安装了visual studio)相比有很多不同


编辑:请查看此Microsoft“修补程序a修补程序”:

授予IUSR用户(或您的IIS用户是谁)对以下注册表项的读取权限为我完成了任务并修复了问题

HKEY_USERS\S-1-5-20\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones
  • 找到并单击以下注册表子项: HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\ 功能控制\功能\u忽略\u区域\u初始化\u失败\u KB945701
  • 注意:如果功能\u忽略\u区域\u初始化\u失败\u KB945701子项不存在,则必须手动创建它。如果您使用的是64位操作系统,则可能需要改用HKEY\U LOCAL\U MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE\u IGNORE\u ZONES\u INITIALIZATION\u FAILURE\u KB945701
  • 右键单击功能\u忽略\u区域\u初始化\u失败\u KB945701, 指向“新建”,然后单击“DWORD值”
  • 键入w3wp.exe以命名新注册表项,然后按ENTER键
  • 右键单击w3wp.exe,然后单击修改
  • 在“值数据”框中,键入1,然后单击“确定”

设置此注册表项后,简单的应用程序池重启将应用更改。您的.NET COM组件不再会在没有真正解决方案的情况下随机停止工作,除了洗牌应用程序池

你在这里想干什么。从您的ASP页面创建dot net类的对象???使用server.createobject。。首先,程序集不是com对象。第二,如果你想创建一个对象,那么你只需要通过添加对该程序集的引用,从VB 6代码中调用它的构造函数就可以创建它。你的开发环境中有什么样的设置?@Matthias:下面的示例对你有用吗:?谢谢你Rodrigo!这看起来很有希望。我会在晚上测试,然后发布结果。实际上没有必要卸载链接中提到的KBFix。我也没有安装修补程序。无论如何,感谢您为我指明了正确的方向。具体的SID取决于应用程序池标识<代码>S-1-5-20是网络服务。