【发布时间】:2019-12-25 06:05:45
【问题描述】:
我将一些旧代码 (WS 2008) 移至新服务器 (WS2016)。新服务器给出 HTTP 500 错误,并且在 C:\inetpub\logs\LogFiles\W3SVCx 日志中显示“Server.CreateObject_Failed 4000”,尽管没有(有意)引用 DLL。同一服务器(不同端口)上的另一个站点工作正常。
我比较了两个服务器和两个站点上的网站和应用程序池设置。我已经验证了一个简单的 HTM 可以工作。我正在使用 IIS (v10) 进行测试以转到“内容视图”并右键单击以浏览 ASP。
http://localhost:3000/hello.asp
按照类似的 SO 问题的建议,我尝试了一些注册表黑客。
我的代码(hello.asp)有两个字
hello world
我希望只返回这两个词,而是得到“HTTP 500 Internal Server Error”。
欢迎提出任何建议。
更新:
我只使用 hello.asp 从头开始创建了一个新站点,并且运行良好。我慢慢地开始一次将一个文件从故障站点拉到工作站点。当我关闭 global.asa 时,它爆炸了(http 500)。我对该文件不是很熟悉,但研究了它,发现它在启动时被调用。查看我的内容,我看到了看起来像是对 DLL 的引用。我找到并将它从旧服务器复制到新服务器(在 SysWow64 文件夹中),然后使用 CMD 作为管理员使用 REGSVR32 注册它。注册成功了,但我仍然得到 500(在站点重新启动、应用程序池回收和 iisreset 之后)
使用 @Lankymart 的建议,我能够显示以下错误
Microsoft VBScript 运行时错误“800a01ad”
ActiveX 组件无法创建对象
/LM/W3SVC/5/ROOT/global.asa,第 13 行
它指向 global.asa 中的一行代码
set objServiceMgr = server.CreateObject("XMLMGR.FedXReqMgr")
XMLMGR 是我注册的 DLL(无济于事)。
- 我尝试了Error ASP 0177: 8007007e Server.CreateObject fails for COM DLL(regsvr32、regedit、syswow64)的所有建议,但我的错误仍然存在。问题描述非常相似,我猜也一样,但没有任何建议奏效 - 但
【问题讨论】:
-
在做出任何假设之前建议您 switch on detailed errors first 并报告浏览器中返回的实际错误。
-
推荐使用the checklist on the duplicate question,因为您可能已经使用 64 位注册表配置单元而不是 32 位配置单元注册了 DLL。
-
去年出现了一个问题,即特定的 Windows 升级影响了一些第三方和自定义 COM 组件。这是一个关于它的问题 - 它可能与您的 DLL stackoverflow.com/questions/51289285/… 相关
-
@Lankymart - 谢谢。错误 ASP 0177... 非常好。在发布更新之前,我实际上做了所有这些事情。在我的辩护中,在我对 global.asa 的工作原理有了新的理解之前,我真的不认为涉及 DLL。我会继续挖掘。
标签: asp-classic