2

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

在另一台机器(Windows Server 2003 - 标准版)上,即使程序集已正确注册 regasm,它也无法工作。我检查了 regedit 并且 afaik 看起来没问题。

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

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

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

4

3 回答 3

6

授予 IUSR 用户(或您的 IIS 用户)对以下注册表项的读取权限为我完成了这项工作并解决了问题。

HKEY_USERS\S-1-5-20\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones
于 2009-10-07T08:21:40.977 回答
2

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


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

于 2009-10-05T09:53:23.040 回答
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 组件将不再会在没有真正解决方案的情况下随机停止工作,除了改组应用程序池!

于 2012-12-26T13:08:33.407 回答