2011-09-07 11 views
16

Bende, hepsi Windows Web Server, .NET 4 ve IIS7'yi çalıştıran 3 tane sunucum var. benim web.config dosyasının başlayan bölümüdür:IIS 7, bir sunucuda web.config için "yinelenen bölüm tanımlandı" hatasını atıyor, ancak başka bir

<?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> 

Bu sunucuların 2 üzerinde çalışıyor, ama bir tanesi hata bildirir:

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

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

Bu tek satırı kaldırırsam, sonraki satırın bir kopyasından şikayet eder ve neredeyse tüm yapılandırma bölümlerini kaldırana kadar devam eder.

Bunun hakkında herhangi bir fikrin sebebi nedir?


Düzenleme:

Bu tamamı 3 sunucularının .NET 2/3.5 ve yüklü 4 olması VS 2010 ve .NET 4. güncellendi bir .NET 3.5 uygulama oldu. IIS uygulama havuzlarının tümü .NET 4.

için güncelleştirilmiştir. Tüm 3 sunucularda, machine.config dosyasının zaten içinde tanımlanan bu web.config bölümlerinden bazıları vardır (Damien'ın yanıtından bahseder), ancak yalnızca 3 çoğaltıldığından şikayet ediyor.

cevap

2

Makinemde machine.config'u işaretledikten sonra, bu bölümlerin önceden tanımlanmış gibi görünüyor. Onlar diğer makinelerin 'machine.config kaldırıldı mı (Veya aslında, bu diğer sunucularda ASP.Net'in önceki bir sürümü altında çalışan site oldu?)

Görebildiğim kadarıyla, bu bölümler tarafından tanımlanır. machine.config içinde ASP.NET 4'ün varsayılan yüklemesi.

+0

İlginç. Bu gerçekten .NET 4'e yükseltilmiş bir .NET 3.5 uygulamasıydı ve tüm 3 sunucuları .NET 2/3.5 çalıştırıyordu. Daha sonra .NET 4 kuruldu ve uygulama havuzları .NET 4'ü kullanacak şekilde güncelleştirildi. Bu bölümlerin neden .NET 4 ... hmmm'yi yükledikten sonra diğer 2 sunucunun machine.config dosyasında olmayacağını bilmiyorum. .. – CodingWithSpike

25

"Bozuk" sunucuda, uygulama havuzunuz .NET 4.0 çalıştırıyor. Düzeltme, uygulama havuzunu .NET 2.0 olarak çalışacak şekilde ayarlamaktır.

ASP.NET AJAX, .NET 2.0'dan sonra icat edildiğinden, yapılandırma tanımları hiçbir zaman merkezi web.config'e dönüştürülmemiştir; bu nedenle, çoğu durumda bunları site bazında bildirmeniz gerekir. 4.0, ASP.NET'in önceki sürümleri için varsayılan yapılandırmaları kırmanın yan etkisi ile, bu çarpanın çoğunu temizledi.

+0

Tüm 3 makinede, uygulama havuzları .net 4'e ayarlanmıştır (bu 2 çalışma dahil) – CodingWithSpike

+0

bu benim için çalıştı. Teşekkürler!! – killerbarney

+0

Güzel bir teşekkür rağmen "AJAX, .NET 2.0 sonra icat edildi çünkü" gerçekten doğru bir ifade değildir! –

0

Yinelenen bölümler hakkında benzer bir hata alıyordum ve IIS'de farklı bir web sitesine dağıtımı düzeltildi.

Bu web sitesine yerleştirilmiş tonlarca eski uygulama vardı ve web.config ile bazı çakışmalar olduğunu düşünüyorum.

Web sitesini yeni sildim, yeni bir tane oluşturdum ve orada konuşlandırdım ve işe yaradı.

İlgili konular