2011-09-07 117 views
16

我有3個服務器,它們都運行Windows Web Server,.NET 4和IIS7。我的web.config文件的開頭部分是:IIS 7爲一個服務器上的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,但他們中的一個報告錯誤:

There is a duplicate 'system.web.extensions/scripting/scriptResourceHandler' section defined

逆勢而行:

<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" /> 

如果我刪除單行,那麼它會抱怨下一行的重複,等等,直到我刪除幾乎所有的配置部分。

任何想法會導致這種情況?


編輯:

這是被更新爲2010 VS和.NET 4.一個.NET 3.5應用的所有3個服務器具有.NET 2/3.5,並安裝4。 IIS應用程序池已全部更新爲.NET 4.

在所有3個服務器中,machine.config文件已經包含了其中定義的一些web.config部分(如Damien的回答所述),但只有3個抱怨它被重複。

回答

2

在我的機器上檢查了machine.config後,似乎已經定義了這些部分。它們是否已從其他機器的machine.config中刪除(或者該網站實際上是否在這些其他服務器上的早期版本的ASP.Net下運行?)

就我所見,這些部分是由在machine.config內的ASP.NET 4的默認安裝。

+0

有趣。這確實是一個升級到.NET 4的.NET 3.5應用程序,所有3個服務器都運行.NET 2/3.5。然後.NET 4被安裝,並且應用程序池被更新爲使用.NET 4.我不知道爲什麼這些部分在安裝.NET 4之後不會出現在其他2臺服務器的machine.config中。 .. – CodingWithSpike

25

在「損壞」的服務器上,您的應用程序池運行的是.NET 4.0。解決方法是將應用程序池設置爲以.NET 2.0運行。

因爲ASP.NET AJAX是在.NET 2.0之後發明的,所以配置定義從未將它放到中央web.config中,因此在大多數情況下您必須在每個站點上聲明它們。 4.0清理了大量的垃圾文件,其副作用是打破了以前版本ASP.NET的默認配置。

+0

所有3臺機器的應用程序池都設置爲.net 4(包括工作的2) – CodingWithSpike

+0

這對我有用。謝謝!! – killerbarney

+0

不錯的一個謝謝,雖然「因爲AJAX是在.NET 2.0之後發明的」並不是真正的準確聲明! –

0

我正在收到有關重複部分的類似錯誤,並將其部署到IIS上的其他網站。

我在該網站上部署了大量的舊應用程序,我認爲與web.config有一些衝突。

我剛剛刪除了網站,創建了一個新的網站,並在那裏部署並運行。

相關問題