我创建了一个Web API,它之前工作正常。当我尝试浏览API时,我突然收到以下错误。
Cannot add duplicate collection entry of type 'add' with unique key attribute 'name' set to 'Access-Control-Allow-Origin'
Config Source:
30: <customHeaders>
31: <add name="Access-Control-Allow-Origin" value="*"/>
32: <add name="Access-Control-Allow-Headers" value="Content-Type"/>
我在web.config中有以下代码
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*"/>
<add name="Access-Control-Allow-Headers" value="Content-Type"/>
</customHeaders>
任何人都可以告诉我这里可能存在什么问题,因为之前工作正常。
答案 0 :(得分:5)
如果已发布或发布,请检查执行转换的其他web.configs。
听起来你的web.release.config中可能有一个转换,它正在添加一个重复的条目。如果有,它可能是这样的:
<add name="Access-Control-Allow-Origin" value="*" xdt:Transform="Insert" />
或者,如果API位于IIS中的子应用程序中,则等效条目可能位于主站点的web.config中。在这种情况下,您需要在添加行上方的web.config中添加类似的内容:
<remove name="Access-Control-Allow-Origin" />
答案 1 :(得分:2)
如错误消息所示,存在重复的收集条目。您可以尝试在实际添加上方添加以下部分:
<remove name="Access-Control-Allow-Origin">
或者简单地,您可以注释该行:
<add name="Access-Control-Allow-Origin" value="*"/>
网站将继承父级的设置。这应该是此问题的原因。您可以检查父网站内容文件夹中是否有一个web.config文件(例如C:\ inetpub \ wwwroot \ arif \或C:\ inetpub \ wwwroot)以及其中的重复集合条目。