为什么URL Rewrite模块会使IIS在IIS 8.5中停止?

问题描述 投票:0回答:2
  • Windows服务器2012 R2
  • IIS 8.5
  • 简单的单文件index.html网站
  • 在应用程序池中选择了.NET CLR 4.0

在此步骤网站工作。然后我为IIS安装URL Rewrite模块。不要为URL重写添加任何规则,但是当我在浏览器中打开网站时,此站点的应用程序池将停止。

错误消息:

HTTP Error 503. The service is unavailable.

日志来自

%SystemDrive%\Windows\System32\LogFiles\HTTPERR

#Software: Microsoft HTTP API 2.0
#Version: 1.0
#Date: 2019-04-29 13:34:12
#Fields: date time c-ip c-port s-ip s-port cs-version cs-method cs-uri sc-status s-siteid s-reason s-queuename
2019-04-29 13:34:12 127.0.0.1 49200 127.0.0.1 80 HTTP/1.1 GET / 503 5 AppOffline test.com29 13:34:12 127.0.0.1 49200 127.0.0.1 80 HTTP/1.1 GET / 503 5 AppOffline test.com

此目录没有日志文件:

%SystemDrive%\inetpub\logs\LogFiles

当一个卸载URL Rewrite模块时,网站池开始正常工作。

为什么doest URL Rewrite模块会使CLR停止?

UPDATE

事件日志消息:

The Module DLL C:\Windows\system32\inetsrv\rewrite.dll failed to load.  The data is the error.

然后我添加到applicationHost配置bitness32

C:\Windows\System32\inetsrv\config\applicationHost

<add name="RewriteModule" image="%SystemRoot%\system32\inetsrv\rewrite.dll" preCondition="bitness32" />

使用bitness32它不会停止池,但我在浏览器中收到此错误:

HTTP Error 500.0 - Internal Server Error
Module "RewriteModule" could not be found
.net iis clr pool url-rewrite-module
2个回答
1
投票

在事件日志中,我找到了相同的消息。即模块DLL C:\ Windows \ system32 \ inetsrv \ rewrite.dll无法加载。数据是错误的。

对我来说,有效的解决方案是替换“rewrite.dll”。在我们的其他2台服务器中它工作正常并且它们是在2017年安装的。所以我只是从该服务器复制了“rewrite.dll”并将其替换在我的新服务器上。

对我来说,dll的旧版本(v7.1.1952.0)可以使用,但是最新设置附带的新版本(v7.1.1993.2351)不起作用。

顺便说一句,你需要在更换dll之前停止IIS并重新开始。


0
投票

您是否在应用程序事件日志中有任何条目指向崩溃的原因,您可以在调试diag中设置崩溃规则以及在调试diag中收集自动崩溃转储然后在那里进行分析,它会给你如果事件日志对您没有多大帮助,请更深入了解。 %SystemDrive%\ inetpub \ logs \ LogFiles将没有文件,这是预期的,因为该网站已经崩溃和禁用,请求甚至没有到达网站

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