IIS ASP.NET 32位ApplicationPool无法处理请求

问题描述 投票:0回答:1

我有一个依赖于32位库的应用程序。当我在64位IIS服务器上运行它时,我得到BadImageFormatException。将应用程序池设置更改为“启用32位应用程序”可以为我解决此问题。

...直到我不得不将其部署到我的最新环境中。当我向应用程序发出请求时,我得到500响应,而不是来自ASP.NET,可能是IIS。查看%SystemDrive%\ inetpub \ logs \ LogFiles显示:

sc-status = 500
sc-substatus = 19 (Configuration data is invalid.)
sc-win32-status = 193 (ERROR_BAD_EXE_FORMAT)

如果撤消“启用32位应用程序”,则会得到通常的BadImageFormatException ASP.NET响应。因此,看来IIS无法启动32位应用程序池主机或其他功能……这有意义吗?如何解决或解决此问题?

asp.net iis 32bit-64bit
1个回答
0
投票

启用失败的请求跟踪之后,我发现ERROR_BAD_EXE_FORMAT错误是由StaticCompressionModule和DynamicCompressionModule引起的。我在互联网上搜索了更多内容,然后找到了link

错误原因在同一服务器上安装WSUS(Windows服务器更新服务)后,在顶层安装了两个新的IIS模块(从安装WSUS)导致冲突的问题。然后,这些模块通过IIS网站向下传播,从而影响其他站点的操作能力,从而导致HTTP错误500.19-错误代码0x800700c1。有问题的两个模块在默认情况下处于锁定状态,并在IIS中向下传播。全局添加的模块是DynamicCompressionModule和StaticCompressionModule。

我认识到本文提到的WSUS也已安装在我的环境中,我按照他们的指示从机器配置中删除了这两个模块。这解决了我的问题。

解释不清楚,这些模块是由WSUS安装还是由WSUS覆盖/更新。通过删除这些模块,我会丢失任何东西吗?

© www.soinside.com 2019 - 2024. All rights reserved.