代码改变世界

IIS应用池"启用32位应用程序"导致Service Unavailable

2017-02-23 12:50  卡车司机  阅读(3873)  评论(2编辑  收藏  举报

对应用池开启了 "启用 32 位应用程序" 后,打开网站出现 HTTP Error 503

这是一个 enable32BitAppOnWin64 后的问题 

---------

Service Unavailable

HTTP Error 503. The service is unavailable.

---------

在IIS中检查应用池,发现网站关联的应用池已经停用状态。

 

检查 Windows日志,应用程序日志中发现,来源:IIS-W3SVC-WP,事件 ID:2282

描述:

由于配置问题,无法加载模块 DLL“xxx.dll”。当前配置仅支持加载为 x86 处理器架构构建的映像。数据字段包含错误号。

 

解决方案:停止IIS,修改 C:\Windows\System32\inetsrv\config\applicationHost.config

为其中有问题的DLL指定加载模式 preCondition="bitness64",如

------------

<add name="XXX" image="XXX.dll" preCondition="bitness64" />

<filter name="AAA ISAPI Filter" path="AAA.dll" enabled="true" preCondition="bitness64" />

之类..

-------------

启动 IIS。

 

文章参考:http://blogs.msdn.com/b/rakkimk/archive/2007/11/03/iis7-running-32-bit-and-64-bit-asp-net-versions-at-the-same-time-on-different-worker-processes.aspx

原文: http://zzy.my/blog/post/IISService-Unavailable