无法添加类型为“add”且唯一键属性“name”设置为“WebServiceHandlerFactory-ISAPI-4.0_64bit”的重复集合条目

问题描述

我在 Windows Server 2019 上安装了 Internet information Services。

在 IIS 中,我托管了一个 svc 服务,但是当我浏览该服务时出现以下错误

模块 IIS 网络核心

错误代码 0x800700b7

配置错误 无法添加类型为“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 中的相同定义:

  1. 启用失败请求跟踪
  2. 添加规则
  3. 如果出现问题,请检查 web.config 文件。是否有相同的失败请求跟踪规则?

如果没有重复,请在 IIS 管理器中检查所有应用程序、站点和服务器级别的跟踪模块中的规则。确保没有相互冲突的规则。

如果问题仍然存在,请将以下行添加到 web.config 中。它将删除所有现有规则以防止重复。

<remove path="*" />