我最近向我的主机发布了我的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>
答案 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自动选取的,并且适用于所有子应用程序站点。
因此解决方案是将其作为另一个端口上的单独站点移动。
答案 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个按键。您可以在此处的配置编辑器中自己查看它。
此名为“ .vs \ config \ applicationhost.config”的文件具有Web.config能够正常工作的默认设置,其中之一就是该处理程序。 您也可以在这里看到它。
问题在于该文件具有该处理程序,而您发布的内容将继承该处理程序。
您有两种解决方案,在已发布的web.config的行上添加注释,或从“ .vs \ config \ applicationhost.config”中删除该处理程序
答案 6 :(得分:0)