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

在另一台计算机(Windows Server 2003 - 标准版)上,即使程序集正确注册了 regasm,它也无法工作。我检查了注册表,据我所知,它看起来没问题。

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

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

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

有帮助吗?

解决方案

授予的IUSR用户(或谁你的IIS用户)的读取访问以下注册表项所做的工作对我来说并解决了问题。

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

其他提示

我认为这是一个安全问题。看来您已经在自己的电脑上开发并测试了该组件,这与服务器(例如安装了 Visual Studio)相比有很多差异。


编辑:请看一下微软的这个“Hotfixes a hotfix”:

  • 找到并单击以下注册表子项:hkey_local_machine Software Microsoft Internet Explorer Main farmaturecontrol feature_ignore_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 value
  • 键入 w3wp.exe 为新注册表项命名,然后按 Enter。
  • 右键单击“w3wp.exe”,然后单击“修改”。
  • 在“值数据”框中,键入 1,然后单击“确定”。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top