问题描述
我在 Windows Server 2019 上安装了 Internet information Services。
在 IIS 中,我托管了一个 svc 服务,但是当我浏览该服务时出现以下错误:
模块 IIS 网络核心
配置错误 无法添加类型为“add”且唯一键属性“name”设置为“WebServiceHandlerFactory-ISAPI-4.0_64bit”的重复集合条目
但是当我从 web.config 中删除这 4 个处理程序行时,该服务工作正常:
<handlers>
<add name="WebServiceHandlerFactory-ISAPI-4.0_64bit" path="*.asmx" verb="*" modules="IsapiModule" scriptprocessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="svc-ISAPI-4.0_64bit" path="*.svc" verb="*" modules="IsapiModule" scriptprocessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,bitness64" responseBufferLimit="0" />
</handlers>
我还有另一个具有相同设置的环境,但这里的服务工作正常,无需从 web.config 中删除处理程序行。
谁能向我解释处理程序行的作用以及我为什么需要它们,以及为什么我需要在一个环境中而不是在另一个环境中删除它们。
谢谢
解决方法
由于错误消息提到了重复记录,请检查 web.config 中的相同定义:
- 启用失败请求跟踪
- 添加规则
- 如果出现问题,请检查 web.config 文件。是否有相同的失败请求跟踪规则?
如果没有重复,请在 IIS 管理器中检查所有应用程序、站点和服务器级别的跟踪模块中的规则。确保没有相互冲突的规则。
如果问题仍然存在,请将以下行添加到 web.config 中。它将删除所有现有规则以防止重复。
<remove path="*" />