2011-09-07 24 views
16

Tôi có 3 máy chủ, tất cả đều đang chạy Windows Web Server, .NET 4 và IIS7. Phần đầu của tập tin web.config của tôi là:IIS 7 ném lỗi "phần trùng lặp được xác định" cho web.config trên một máy chủ, nhưng không khác

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

này hoạt động tốt trên 2 của các máy chủ, nhưng một trong số họ báo cáo các lỗi:

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

chống lại dòng:

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

Nếu tôi xóa bỏ một dòng đơn, thì nó sẽ phàn nàn về một dòng trùng lặp của dòng tiếp theo, và cứ như vậy cho đến khi tôi xóa gần như tất cả các phần cấu hình.

Bất kỳ ý tưởng nào sẽ gây ra điều này?


Edit:

Đây là một ứng dụng .NET 3.5 đã được cập nhật để VS 2010 và .NET 4. Cả 3 máy chủ có .NET 2/3,5 và 4 được cài đặt. Tất cả các máy chủ ứng dụng IIS đều đã được cập nhật thành .NET 4.

Trong tất cả 3 máy chủ, tệp machine.config đã có một số phần web.config được định nghĩa trong đó (như câu trả lời của Damien), nhưng chỉ 1 trong 3 phàn nàn về nó bị trùng lặp.

Trả lời

2

Sau khi đã kiểm tra machine.config trên máy của tôi, có vẻ như đã xác định các phần này. Họ đã bị loại bỏ khỏi các máy khác 'machine.config (Hoặc là trang web, trên thực tế, chạy dưới một phiên bản trước của ASP.Net trên các máy chủ khác?)

Cho đến nay tôi có thể thấy, các phần này được xác định bởi cài đặt mặc định của ASP.NET 4 trong phạm vi machine.config.

+0

Thú vị. Đây thực sự là một ứng dụng .NET 3.5 đã được nâng cấp lên .NET 4 và cả 3 máy chủ đều chạy .NET 2/3.5. Sau đó, .NET 4 đã được cài đặt và các nhóm ứng dụng đã được cập nhật để sử dụng .NET 4. Tôi không biết tại sao các phần đó sẽ không nằm trong machine.config của 2 máy chủ khác sau khi cài đặt .NET 4 ... hmmm. .. – CodingWithSpike

25

Trên máy chủ "bị hỏng", nhóm ứng dụng của bạn đang chạy .NET 4.0. Bản sửa lỗi là đặt nhóm ứng dụng để chạy dưới dạng .NET 2.0.

Vì ASP.NET AJAX được phát minh sau .NET 2.0, các định nghĩa cấu hình không bao giờ được đưa vào web.config trung tâm nên bạn phải khai báo chúng trên cơ sở từng trang trong hầu hết các trường hợp. 4,0 làm sạch rất nhiều cruft, với các tác dụng phụ của phá vỡ các cấu hình mặc định cho các phiên bản trước của ASP.NET.

+0

Tất cả 3 máy có hồ bơi ứng dụng được đặt thành .net 4 (bao gồm cả 2 máy hoạt động) – CodingWithSpike

+0

tính năng này đã hoạt động đối với tôi. cảm ơn!! – killerbarney

+0

Rất cảm ơn mặc dù "Vì AJAX được phát minh sau .NET 2.0" không thực sự là một tuyên bố chính xác! –

0

Tôi đã nhận được một lỗi tương tự về các phần trùng lặp và cố định nó triển khai đến một trang web khác trên IIS.

Tôi có rất nhiều ứng dụng cũ được triển khai trên trang web đó và tôi nghĩ có một số xung đột với web.config.

Tôi vừa xóa trang web, tạo một trang web mới và triển khai ở đó và nó hoạt động.

Các vấn đề liên quan