调查Web原因的步骤.Config Duplicate Section

Pau*_*uly 40 asp.net asp.net-mvc iis-7

症状

  • 在IIS 7和Dot Net 2.0集成应用程序池中:双击以查看任何web.config部分会导致出现如下错误对话框:

  • 浏览到URL显示: "Http 500.19"内部服务器错误..有一个重复...'system.web.extensions/scripting/scriptResourceHandler'部分定义...."

  • 从VS 2008运行应用程序将显示"无法在Web服务器上启动调试..."对话框.

基础设施

  • Web服务器:在Windows 7 x64上运行的IIS 7
  • ASP.Net MVC2
  • 应用程序池:集成了Dot Net 2.0
  • VS 2008

事情尝试了

  • 检查是否在同一台计算机上的其他IIS应用程序目录中发生了问题.
  • 在IIS中删除并重新添加了该应用程序.
  • 恢复到web.config文件的先前版本.
  • 检查了源代码的最后一个工作版本.重新构建应用程序,为其添加了一个新的应用程序目录,并尝试从IIS查看web.config内容.
  • 查找可能包含重复部分的web.config文件:
    • Inetpub root.
    • "C:\ WINDOWS\Microsoft.NET \框架\ V2.0.50727\CONFIG\machine.config中"
    • ASP.Net MVC应用程序的"Views"子文件夹.
  • 检查出另一台开发机器的源代码.设置IIS 7应用程序文件夹.没有Web.config的问题.

  • 如果这个错误的原因是另一个web.config文件,我应该在哪里看?
  • 这些症状还有其他原因吗?

Pau*_*uly 35

将其添加到清单中.

  • 确保您检查的machine.config来自与运行应用程序的应用程序池相同的Dot Net框架.

在我的例子中,默认应用程序池已从Dot Net 2.0更改为Dot Net 4.0.这将root machine.config更改为4.0版本.此版本包含"scriptResourceHandler"部分以及其他部分.因此重复部分警告.


Pur*_*ome 7

如果您使用DotNetOpenAuth库在您的网站和你的网站是一个.NET 4.0 app,那么你需要确保这条线是不是在你的web.config

<section name="uri" type="System.Configuration.UriSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

使用NuGet安装了DNOA,并自动将该行添加到我的web.config文件中.所以我不得不删除它.

BTW的人,如果你使用内置的(hella-crappy)visual studio开发服务器(又名Cassini)..你不会得到这个问题/问题.只有当您将代码移动到IIS7 express或完整IIS7时才会出现此问题.

所以删除那一行,然后有一个快乐的舞蹈.