使用传统的ASP在IIS7上创buildCOM对象时发生Server.CreateObject_Failed错误

我试图从Windows Server 2003,IIS6服务器迁移到Windows 2008,IIS 7服务器的经典ASP应用程序。

ASP页面很好,但它第一次尝试使用我们的.NET interop DLL,它失败,在IIS日志中出现以下错误:

2012-01-06 18:50:41 XXXX POST /downloads.asp | 27 | ASP_0177 _:_ 8000ffff | Server.CreateObject_Failed 80 – XXXX Mozilla / 5.0 +(Windows + NT + 6.1; + rv:8.0)+ Gecko / 20100101 + Firefox / 8.0 500 0 0 0

ASP页面中的相应行是:

设置订阅= Server.CreateObject(“DLLNAME”)

我使用RegAsm.exe成功注册了DLL,并使用成功调用CreateObject的VBscript进行了确认。 我也确保NETWORK SERVICE,IUSR_MACHINENAME和IUSR都具有对DLL位置和HKEY_USERS … Internet Settings \ Zones的读访问权限。

有什么想法吗?

如果它从VBScript起作用,也许这是一个位的问题?

工作进程可能被设置为Enable32BitApp设置为True,这是32位,从常规的CMD提示运行的VBScript将匹配该提示的位(这是64位,除非从SysWow64运行)。

所以…先检查一下Bitness是否正确。 如果是这样,请尝试ProcMonlogging应用程序的任何查找,并检查事件日志中的特定错误消息。

  1. 确保您不仅允许读取访问权限,而且还对DLL执行权限。
  2. 为整个HKEY_USERS\S-1-5-20\Software\Microsoft\Windows\CurrentVersion\Internet Settings密钥授予IUSR读取权限