解决方案:
- 找到 C:\Windows\System32\inetsrv\config\applicationHost.config,先备份
- 找到
<scheme name="xpress" doStaticCompression="false" doDynamicCompression="true" dll="C:\Program Files\Update Services\WebServices\suscomp.dll" staticCompressionLevel="10" dynamicCompressionLevel="0" />
- 注释或删除此行,保存文件。
- 重启IIS,Exchange 网页服务恢复正常。
故障原因: 因为WSUS安装了XPress压缩方案模块(suscomp.dll)。由于压缩方案是全局定义的,并尝试在每个应用程序池中加载,因此当64位版本的suscomp.dll尝试在以32位模式运行的应用程序池中加载时,将导致此错误。
分析原因: 因在此服务器上安装又卸载了WSUS服务,但IIS服务中WSUS站点及相应模块未被删除,系统中配置文件引用了suscomp.dll。
参考微软文档Scenario6:https://docs.microsoft.com/en-us/archive/blogs/webtopics/troubleshooting-http-500-19-errors-in-iis-7
Scenario 6
Error Message:
HTTP Error 500.19 - Internal Server Error The requested page cannot be
accessed because the related configuration data for the page is
invalid. Module DynamicCompressionModule Notification SendResponse
Handler StaticFile Error Code 0x8007007e Requested URL
http://localhost:80/ Physical Path C:\inetpub\wwwroot Logon Method
Anonymous Logon User AnonymousReason:
Error Code 0x8007007e is:
ERROR_MOD_NOT_FOUND - The specified module could not be found.
This problem occurs because the ApplicationHost.config file or the
Web.config file references a module that is invalid or that does not
exist. To resolve this problem: In the ApplicationHost.config file or
in the Web.config file, locate the module reference or the DLL
reference that is invalid, and then fix the reference. To determine
which module reference is incorrect, enable Failed Request Tracing,
and then reproduce the problem.For above specific error (mentioned in this example),
DynamicCompressionModule module is causing the trouble. This is
because of the XPress compression scheme module (suscomp.dll) which
gets installed with WSUS. Since Compression schemes are defined
globally and try to load in every application Pool, it will result in
this error when 64bit version of suscomp.dll attempts to load in an
application pool which is running in 32bit mode.This module entry looks like:
Hence to get rid of this problem:
Ø Remove/Disable the XPress compression scheme from the configuration
using the command below:%windir%\system32\inetsrv\appcmd.exe set config
-section:system.webServer/httpCompression /-[name=‘xpress’]OR
Ø Add an attribute of "precondition= “64bitness” for this module entry
so that it loads only in 64bit application poolsRefer this blog for more details on Preconditions in IIS7
OR
Ø Use a 32bit version of suscomp.dll