我有3台服务器,它们都运行Windows Web Server、.NET 4和IIS7。我的web.config文件的开头部分是:
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<configSections>
<section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<section name="cachingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheManagerSettings, Microsoft.Practices.EnterpriseLibrary.Caching, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
这在2台服务器上运行良好,但其中一台服务器报告了错误:
定义了重复的'system.web.extensions/scripting/scriptResourceHandler‘节
在这条线上:
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
如果我删除了这一行,那么它就会报告下一行重复,依此类推,直到我删除了几乎所有的配置节。
你知道这是什么原因吗?
编辑:
这是一个更新到VS 2010和.NET 4的.NET 3.5应用程序。所有3台服务器都安装了.NET 2/3.5和4。IIS应用程序池已全部更新到.NET 4。
在所有3个服务器中,machine.config
文件已经在其中定义了其中的一些web.config部分(正如达米恩的回答所提到的),但3个服务器中只有1个抱怨它被复制。
发布于 2011-09-07 22:31:56
在“坏掉”的服务器上,你的应用程序池运行的是.NET 4.0。修复方法是将应用程序池设置为作为.NET 2.0运行。
因为ASP.NET AJAX是在.NET 2.0之后发明的,所以配置定义从未进入中央web.config,所以在大多数情况下,您必须逐个站点地声明它们。4.0清理了很多这方面的问题,带来的副作用是打破了ASP.NET以前版本的默认配置。
发布于 2011-09-07 22:25:27
在我的机器上检查了machine.config
之后,似乎已经定义了这些部分。它们是否已从其他机器的machine.config
中删除(或者该站点实际上是在这些其他服务器上运行的早期版本的ASP.Net下运行的吗?)
据我所知,这些部分是由machine.config
中默认安装的ASP.NET 4定义的。
发布于 2015-12-18 21:31:29
我收到了一个关于重复部分的类似错误,并修复了它部署到IIS上的不同网站。
我在该网站上部署了大量的旧应用程序,我认为这与web.config有一些冲突。
我只是删除了网站,创建了一个新的,并部署在那里,它工作了。
https://stackoverflow.com/questions/7335359
复制相似问题