今天在win2008+IIS7.5的环境中部署WCF服务后,一直出现无法打开的页面。具体错误信息如下:

HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效。 详细错误信息 模块 DynamicCompressionModule 通知 SendResponse 处理程序 StaticFile 错误代码 0x8007007e 请求的 URL *** 物理路径 C:/ECG2.0/eWECGService 登录方法 匿名 登录用户 匿名 最可能的原因: 工作进程无法读取 applicationhost.config 或 web.config 文件。 applicationhost.config 或 web.config 文件中存在格式错误的 XML。 由于 NTFS 权限不正确,服务器无法访问 applicationhost.config 或 web.config 文件。 可尝试的操作: 查询事件日志中有关配置文件不可读的原因的信息。 确保为应用程序池指定的用户标识或通过身份验证的用户具有访问 web.config 文件的必需权限。

在网上搜寻了好久,发现都不是匹配的错误。最终在一个英文网站找到了。。

解决办法:

#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']


原文如下:

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:<scheme name="xpress" doStaticCompression="false" doDynamicCompression="true" dll="C:/Windows/system32/inetsrv/suscomp.dll" staticCompressionLevel="10" dynamicCompressionLevel="0" />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 IIS7ORØ Use a 32bit version of suscomp.dll***************************************