前几天,我们从执行重写的第三方获得了正在重写主应用程序的更新副本。
我主要使用它作为我已经使用的代码的参考,并且只是在我们的另一个项目中实现了这个更新副本的内容。
今天早上,我决定用新版本的重写覆盖我现有的重写副本。跑吧,并遇到各种各样的问题。
恢复我在更新之前创建的备份,现在我在启动应用程序时遇到此错误:
无法添加“add”类型的重复集合条目,并将唯一键属性“name”设置为“Elmah”
在我的web.config的第10行,我确实有这个:
<sectionGroup name="elmah">
...
</sectionGroup>
有一些属于它的节点。然后再往下,我也有这个:
<add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
事情是,在我删除此文件夹的内容并将其替换为更新代码的内容之前,这在15分钟前完全正常工作。
然后我删除了包含更新的文件夹的内容,并将我创建的备份解压缩到原始根文件夹中。现在,当我运行它时,我得到了那个错误。如果我只是注释掉那个节点,我会得到关于重复节点的其他类似错误。
我还有一个同事,其代码功能正常,向我发送她的web.config并且它与我的相同(一些值包含她的电子邮件地址而不是我的,但这是唯一的区别)。
任何可能导致此行为的想法......?
使用.NET 4.5,Visual Studio 2013,IIS 7.5.7600.16385
答案 0 :(得分:0)
我为其他解决方案创建了Web.config文件的备份,并将其移至根wwwroot
文件夹。
原来所有应用程序都继承了服务器本身的任何设置,所以我猜它只是将应用程序的Web.config
文件附加到该根Web.config
,导致它看到重复。啊。
网站将继承父级别的设置。这应该是这个问题的原因。您可以检查父Web内容文件夹中是否有web.fig文件(例如C:\ inetpub \ wwwroot \ someFolder \或 C:\ inetpub \ wwwroot )以及其中的重复集合条目