我是一名软件开发人员,我在 IIS 7.5 中的本地计算机上调试网站。最近我的计算机出现了无法解决的问题,因此我备份、格式化、重新安装 Windows 和我的 IDE,然后重新设置了所有内容。
将我的网站发布到 IIS 后,现在我看到一个配置错误页面,上面写着:无法添加类型为“add”且将唯一键属性“name”设置为“X-Frame-Options”的重复集合条目。
如果我查看 IIS 的自定义标头功能视图,我会看到我有两个自定义标头定义:X-Frame-Options 和 Strict-Transport-Security。
我的 web.config 中确实定义了该自定义标头,如果我删除它,其他自定义标头也会导致仅与该标头有关的错误。
删除这两条条目后,网站现在可以加载,但我不再拥有任何一条自定义标题。
现在是自定义标题功能,我没有自定义标题。
自定义标头是否在其他地方定义?为什么它认为我有重复项。这些键值(例如)仅在 web.config 中定义一次,没有重复。
答案1
可以在每个级别添加自定义标头:服务器/站点/应用程序。如果级别之间有重复的条目,则会导致问题。在应用程序级别,您可以在添加之前删除标头,以便处理更高级别的重复项。类似这样的内容:
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Frame-Options"/>
<add name="X-Frame-Options" value="Strict-Transport-Security"/>
</customHeaders>
</httpProtocol>
</system.webServer>