无法添加“add”类型的重复集合条目,并将唯一键属性“name”设置为“aspNetCore

时间:2016-10-16 11:38:32

标签: asp.net-core iis-8.5

我最近向我的主机发布了我的ASP.NET核心应用程序。我遇到HTTP错误500.19。

IIS 8.5说问题是: -

“无法添加”add“类型的重复集合条目,并将唯一键属性”name“设置为”aspNetCore“

它还突出显示了我的system.webServer配置中的这个键添加行: -

<handlers>
  <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule"      
</handlers>

我不确定该怎么办。看起来好像有一个重复的实例,所以我尝试重命名这个,但它仍然要求再次添加它?

这是我的web.config: -

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <!--
  Configure your application settings in appsettings.json. Learn more at http://go.microsoft.com/fwlink/?LinkId=786380
  -->

  <system.webServer>
  <handlers>
    <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
  </handlers>
  <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
  </system.webServer>

<system.net>
<defaultProxy useDefaultCredentials="true" >
</defaultProxy>
</system.net>
</configuration>

7 个答案:

答案 0 :(得分:15)

上面的答案对我不起作用,但是DavidG的评论确实解决了我的问题,所以如果能帮助其他人,请发布答案。

对我而言,我将其作为子应用程序运行,而且一年多来一直为我工作的项目突然停止了解决这个问题。还是不确定是什么改变了。当我注释掉或删除<add name="aspNetCore".../>时,错误仍然存​​在,然后该行自动重新添加。

为了解决这个问题,我在配置文件中添加了<remove name="aspNetCore" />,在<add name="aspNetCore"... />条目的正上方,然后事情又开始了。

答案 1 :(得分:4)

不幸的是,没有一个建议的解决方案对我有用。通过一些奇迹,我了解到我的applicationhost.config文件在一个不幸的事情中被修改,当我导航到我的.NET Core网站应用程序中的特定页面时,出现“无法添加重复的集合条目”错误。

<sites>的{​​{1}}标记下,我有以下内容:

applicationhost.config

当我导航到“/ SomePage”页面时,向我显示了500.19 HTTP错误。正如您所看到的,由于某种原因,此特定页面有一个单独的 <site name="MyWebsite" id="2"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="C:\Users\___\solutionname\MyWebsite" /> </application> <application path="/SomePage" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="C:\Users\___\solutionname\MyWebsite" /> </application> <bindings> <binding protocol="https" bindingInformation="*:12345:localhost" /> </bindings> </site> 标记。我不明白为什么。

我删除了“/ SomePage”路径的整个<application>标记,一切都重新开始了。

答案 2 :(得分:3)

我有同样的问题,在我的情况下评论该行

<add name="aspNetCore"...

解决了这个问题并提出了“为什么没有AspNetCoreModule就能正常工作”的问题。 我的问题是我将该网站添加为defaultwebsite中的子应用程序,它位于wwwroot文件夹中。我认为配置是由defaultwebsite自动选取的,并且适用于所有子应用程序站点。

This link helped

因此解决方案是将其作为另一个端口上的单独站点移动。

答案 3 :(得分:3)

我在vs 2017上遇到了这个问题,该项目在没有更改web.config的情况下工作正常。看看这篇帖子,我意识到它可能是一个IIS快递问题,我解决了简单地删除.vs文件夹并重启vs。

答案 4 :(得分:0)

在我的情况下,此问题是由于在我的Web项目的“调试”选项卡中放置一个路径导致该应用程序在特定页面上打开而引起的。这会导致对文件.vs \ config \ applicationhost.config进行两次静默添加,类似于八倍速2观察到的那样。

在:

python-memcached

在:

<add name="api AppPool" managedRuntimeVersion="" />

已存在类似条目的位置。这是问题的根源。

不幸的是,错误消息是完全误导的。

解决方案是重命名applicationhost.config,重新启动VS,并让其重建文件。这就是为什么里卡多删除整个.vs文件夹的解决方案也行得通的原因。

答案 5 :(得分:0)

该错误是因为ASP.NET Core中有一个名为“ .vs \ config \ applicationhost.config”的根文件 最初它有67个按键。您可以在此处的配置编辑器中自己查看它。 Where to find the ApplicationHost.config

此名为“ .vs \ config \ applicationhost.config”的文件具有Web.config能够正常工作的默认设置,其中之一就是该处理程序。 您也可以在这里看到它。 Key aspNetCore

问题在于该文件具有该处理程序,而您发布的内容将继承该处理程序。

您有两种解决方案,在已发布的web.config的行上添加注释,或从“ .vs \ config \ applicationhost.config”中删除该处理程序

答案 6 :(得分:0)

我刚遇到了这个问题,事实证明,我已在网站属性的“调试”设置中更改了“应用程序网址”,以便加载特定页面(错误但发生了)。

enter image description here

在IIS中,它自动在名为“关于”的测试域下创建了一个新应用程序。

删除域下的恶意IIS应用程序可以解决此问题,因为它导航到页面时不会尝试重新加载相同的web.config。