【问题标题】:Error 429 in IIS and 64 Bit Windows Server 2008IIS 和 64 位 Windows Server 2008 中的错误 429
【发布时间】:2013-05-10 20:52:48
【问题描述】:

我正在尝试在 Server 2008 和 IIS 7 上部署 32 位 ASP Web 应用程序。

我有另一台服务器,应用程序运行良好,但在这台服务器上,每次加载调用我的 DLL 的 ASP 页面时,我都会收到错误 429:ActiveX 组件无法在 DLL 中创建对象/em>。

我已经尝试了我在网上找到的所有解决此问题的方法,包括以下内容: 在应用程序池上启用 32 位应用程序。 从 C:\Windows\SysWOW64 文件夹重新注册 DLL(使用 RegSvr32)

当我运行 SysInternals Process Monitor 并比较结果时,我注意到的主要是在正常运行的机器上,当我加载页面时,dllhost.exe 进程和 w3wp 之间的活动混合均匀。 exe进程。

在失败的服务器中,我看到成功的服务器中没有调用注册表,包括一些我不知道它们是什么的调用: HKLM\SOFTWARE\Wow6432Node\Microsoft\VBA\Monitors HKCR\Wow6432Node\Interface{6F255EB7-E73A-4579-B0EC-045FBC00992D}\InterfaceHelperDisableTypeLib HKCR\Wow6432Node\Interface{6F255EB7-E73A-4579-B0EC-045FBC00992D}\InterfaceHelperDisableAll HKCR\Wow6432Node\Interface{6F255EB7-E73A-4579-B0EC-045FBC00992D}\InterfaceHelperUser

所有这些调用都是使用 dllhost.exe 进程进行的。在出现错误页面之前,w3wp.exe 进程不会再次进入。

我应该提一下,这是两台全新的服务器。我们无法识别它们之间的配置差异。

另外值得一提的是,即使我应该支持这个应用程序,我也无法访问源代码,也无法在任何带有断点或类似的调试模式下执行源代码。

我强烈怀疑我们尝试在 64 位服务器上运行此 32 位代码的方式存在某种配置错误,但我不知道如何证明它,或者指导如何修复它。

谢谢, 比尔

更新: 问题原来是一个需要重新生成的 .tlb 文件。我公司中少数从事 C# 开发并被允许查看源代码的人中的一些人很快发现,运行该应用程序的 DLL 中有一个可用的方法来执行此操作。他们编写了一个 VB 脚本,调用它来生成文件,一切都重新启动并运行。

我对 Windows 开发知之甚少,不知道 .tlb 是什么或它为什么起作用,但故事的寓意是,如果您有一个无法在 64 位(可能是任何服务器)上运行的 32 位 Web 应用程序? ) Windows 服务器由于错误 429,请仔细查看您的 .tlb 文件。只是不要问我你应该寻找什么。

【问题讨论】:

    标签: asp.net iis-7 asp-classic windows-server-2008


    【解决方案1】:

    您是否确定已启用 IIS 以运行 32 位应用程序?

    在您的应用程序池上,右键单击并选择“高级设置”

    然后在 General 下确保“Enable 32-bit Applications is “True”

    通常默认设置为“False”。

    这对我也有用http://support.microsoft.com/kb/177394

    【讨论】:

    • 是的,我做到了。事实上,我在发布之前仔细检查了它,以确保我没有遗漏任何非常简单的东西。
    猜你喜欢
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2013-03-14
    • 2015-06-16
    • 1970-01-01
    相关资源
    最近更新 更多