Triển khai IIS7 - trùng lặp phần 'system.web.extensions / scripting / scriptResourceHandler'


209

Khi cố gắng triển khai trang web .net 3.5 trên nhóm ứng dụng mặc định trong IIS7 có phần khung được đặt thành 4.0, tôi gặp lỗi sau.

Có một phần 'system.web.extensions / scripting / scriptResourceHandler' được xác định.

Bình luận về các dòng vi phạm cũng không giúp được gì. Bất kỳ con trỏ về những gì tôi cần phải làm hoặc nhìn vào?

Câu trả lời:


338

Nếu kế hoạch của bạn là triển khai lên IIS có Nhóm ứng dụng đang chạy trong .net 4.0, bạn sẽ cần dọn sạch web.config bao gồm tất cả các phần Định nghĩa trỏ đến .net 3.5. Lý do thất bại là vì các định nghĩa phần này đã được bao gồm trong web.config gốc trong .NET 4.0 (xem% Windir% \ microsoft.net \ framework \ v4.0.30319 \ config \ machine.config) bao gồm tất cả hệ thống. web.extensions đã khai báo.

Một cách khắc phục nhanh khác là để nhóm ứng dụng được đặt thành 2.0 giống như máy phát triển của bạn dường như có ,.


Cảm ơn. Tôi đã thực sự tìm ra cách giải quyết này sau khi mày mò xung quanh một số thứ khác ..
user20353

3
Cảm ơn bạn đã giải thích điều này. Tôi liên tục thấy giải pháp xóa một phần khỏi tệp cấu hình và tôi tự hỏi, "làm thế nào để cắt các phần của tệp cấu hình của bạn thành một giải pháp"?
Adam Brussel

13
ĐIỂM ỨNG DỤNG CỦA TÔI ĐƯỢC THIẾT LẬP 4.0 LẬP TỨC 2.0!
RolandoCC

1
Điều đó thật dễ dàng, hãy chuyển trang web cũ này sang nhóm ứng dụng 2.0 và viola nó hoạt động! Cảm ơn!
mgrenier

1
Chỉ cần xóa phần .net 3.5 trong web.config hoạt động với tôi
Anand

49

Giải pháp cho tôi là thay đổi phiên bản .NET framework trong Nhóm ứng dụng từ v4.0 thành v2.0 cho Nhóm ứng dụng mặc định:

nhập mô tả hình ảnh ở đây


13
Có phải, nếu bạn thực sự sử dụng .NET 4.0 trong ứng dụng?
Michael Paulukonis

3
@MichaelPaulukonis Tôi gặp vấn đề này, hóa ra có một web.config trong trang web gốc mà trang web của tôi đang kế thừa từ đó.
guanome 26/03/13

@MichaelPaulukonis, pfft như thế sẽ xảy ra!
DaveDev

Tôi gặp vấn đề này khi ứng dụng của tôi được nâng cấp từ 3.5 lên 4.0, nhóm ứng dụng được cập nhật chính xác, nhưng web.config đã lỗi thời. Web.config đã cố gắng thêm tất cả các nhóm phần mà từ 4.0 là bản địa và không cần phải thêm rõ ràng.
Drizin

48

Nếu, giống như tôi, bạn cần nhắm mục tiêu v4 nhưng chỉ có thể xây dựng với .net 3.5, hãy làm theo hướng dẫn tại đây . Chỉ cần thay thế trong web.config toàn bộ nội dung của <configSections>:

<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
  <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
    <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
    <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions,  Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
      <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
      <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
      <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
      <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
    </sectionGroup>
  </sectionGroup>
</sectionGroup>


3
Của bạn là giải pháp duy nhất giải quyết lỗi của tôi! Cảm ơn rất nhiều!
Devdatta Tengshe

1
Điều này cũng giải quyết vấn đề của tôi. Máy chủ đã được nâng cấp IIS6 lên IIS7.5. Trên IIS6, nó chạy dưới phiên bản 4.0 nhưng IIS7.5 cần thay đổi web.config này.
johna

nó thật là tuyệt vời.
mzonerz

Giá trị trong PublicKeyToken là phân biệt chữ hoa chữ thường (và sẽ giống như trong câu trả lời). Tôi đã có chữ hoa và nó không hoạt động.
Bjorn

3

El vấn đề về hệ thống thông tin liên lạc với hệ thống 4.0 ở đây] [2]

Con esto pudes solucionar el Problema al instalar la quản trị trung tâm SharePoint 2010

----- thông qua Google Dịch -----

Vấn đề là do hồ bơi mặc định. Giải pháp Net 4.0: nhập Trình quản lý IIS của máy chủ để đặt giá trị ở bên phải nhóm ứng dụng.! [Nhập mô tả hình ảnh tại đây] [1] và thay đổi phiên bản khung! [Nhập mô tả hình ảnh tại đây] [2]

Điều này sẽ giải quyết vấn đề cài đặt quản trị trung tâm SharePoint 2010


22
Chào mừng bạn đến với StackOverflow! Nếu bạn không đủ trình độ tiếng Anh, vui lòng chạy câu trả lời của bạn thông qua Google Dịch . Cộng đồng sẽ cải thiện bất kỳ cụm từ lạ bằng cách chỉnh sửa. Cảm ơn bạn vì câu trả lời. ||||| thông qua Google Dịch | | Bienvenido một StackOverflow! Si ust no tiene dominio de Inglés suficiente, por fav, ejecute a través de sus respuestas Google Dịch . La comunidad mejorará frels Extrañas en la edición. Gracias por su respuesta.
Andrew Kozak


3

Necromance.
Nếu bạn không có bất kỳ phần cấu hình system.web.extensions hoặc mục xử lý / mô-đun nào trong web.config, thì sự cố này xảy ra do bạn / ai đó đã sao chép VisualStudio-Project (2013/2015/2017) trong khi ẩn đi -files không bị cản trở .

Do đó, nó sẽ không chỉ sao chép .git mà còn .VSchứa tệp IIS-Express applicationationhost.config , trỏ đến các tệp web.config tại các đường dẫn không tồn tại (hoặc tệ hơn là các đường dẫn tồn tại, nhưng không có cùng nội dung) ...

Giải pháp:
Xóa tệp applicationationhost.config trong thư mục .VS.
Hoặc chỉ cần xóa thư mục .VS hoàn toàn.
Visual Studio sẽ tạo lại nó.


Giải thích rõ ràng
William Bello

2

Ứng dụng của tôi là một ứng dụng ASP.Net3.5 (sử dụng phiên bản 2 của khung). Khi các ứng dụng ASP.Net3.5 được tạo, Visual Studio sẽ tự động thêm scriptResourceHandler vào web.config. Các phiên bản sau của .Net đưa cái này vào machine.config. Nếu bạn chạy ứng dụng ASP.Net 3.5 bằng nhóm ứng dụng phiên bản 4 (tùy theo thứ tự cài đặt thì đây là nhóm ứng dụng mặc định), bạn sẽ gặp lỗi này.

Khi tôi chuyển sang sử dụng nhóm ứng dụng phiên bản 2.0. Lỗi đã biến mất. Sau đó tôi đã phải xử lý lỗi khi phục vụ WCF .svc:

Lỗi HTTP 404.17 - Không tìm thấy Nội dung được yêu cầu dường như là tập lệnh và sẽ không được trình xử lý tệp tĩnh phục vụ

Sau một số điều tra, có vẻ như tôi cần phải đăng ký trình xử lý WCF. sử dụng các bước sau:

  1. mở Visual Studio Command Prompt (với tư cách quản trị viên)
  2. điều hướng đến "C: \ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation"
  3. Chạy servicemodelreg -i


1

Trong trường hợp của tôi, điều đó đã xảy ra sau khi tôi chuyển đổi toàn bộ giải pháp (sử dụng tiện ích mở rộng có tên Target Framework Migrator) thành 4.6.2 nhưng cuối cùng lại hoàn tác các thay đổi và quay trở lại 3.5 (giải pháp được TFS phiên bản). Để giải quyết vấn đề này, tôi chỉ chuyển đổi dự án có vấn đề (đang sử dụng IIS Express để chạy) thành 4.6.2 và sau đó trở lại 3.5.


cảm ơn. có vẻ như việc hoàn nguyên các thay đổi trở lại và hoàn tác sẽ không đưa ứng dụng về trạng thái .NET 3.5 chính xác.
Iman

0

Một cách khác để tránh vấn đề này có thể giúp người khác là xây dựng dịch vụ web .net của bạn lên phiên bản 4.0 trở lên nếu có thể.


0

Trong trường hợp của tôi, tôi đã có 2 ứng dụng khác nhau chia sẻ cùng một nhóm ứng dụng. Cái đầu tiên là sử dụng framwork .net4.5 và cái mới sử dụng 2.0. Khi tôi thay đổi ứng dụng thứ hai thành nhóm ứng dụng riêng, nó bắt đầu hoạt động tốt mà không có thay đổi nào đối với web.config.


0

Nghị quyết của tôi là loại ngu ngốc.

  • Tôi đã cài đặt một bản sao của .net 3.5

  • Tạo một nhóm ứng dụng khác và chọn .net 3.5 (có tên 2.0.5077 trong trình đơn thả xuống)

  • Đã thêm trang web của tôi vào nhóm ứng dụng đó

  • Tái chế các hồ cũ và mới và trang web bắt đầu làm việc.

Tôi không cài đặt được 3,5 mặc dù tính năng bật cửa sổ cho biết tôi đã làm và tạo một nhóm ứng dụng khác để sử dụng. Tôi hy vọng điều này sẽ giúp những người khác.


0

Trong trường hợp của tôi, tôi muốn thêm thủ công urlrewrite và không thể thấy lỗi rõ ràng (tôi đã bỏ lỡ <rules>thẻ):

sai mã:

    <rewrite>
      <rule name="some rule" stopProcessing="true">
        <match url="some-pattenr/(.*)" />        
        <action type="Redirect" url="/some-ne-pattenr/{R:1}" />
      </rule>
    </rewrite>    

  </system.webServer>
</configuration>

mã thích hợp (có thẻ quy tắc):

    <rewrite>
      <rules>
        <rule name="some rule" stopProcessing="true">
          <match url="some-pattenr/(.*)" />        
          <action type="Redirect" url="/some-ne-pattenr/{R:1}" />
        </rule>
      </rules>
    </rewrite>

  </system.webServer>
</configuration>

0

Tôi đã giải quyết nó, thực hiện các bước sau:

  1. Tôi đã tạo một nhóm ứng dụng mới trong IIS.
  2. Mở cài đặt nâng cao cho trang web hoặc ứng dụng web đang gặp sự cố này.
  3. Và thiết lập nhóm của ứng dụng mới.

Ở đây bạn có hình ảnh của các bước sau:

Tạo nhóm ứng dụng mới

Sau khi bạn tạo nhóm của ứng dụng

Đặt nhóm ứng dụng trong trang web hoặc ứng dụng web của bạn


0

Thông báo lỗi này dường như xuất hiện trong các tình huống khác nhau.

Trong trường hợp của tôi, trên đầu tệp Web.Config của ứng dụng tôi đã có thêm một tệp Web.Config trong thư mục gốc (C: \ Inetpub \ www.root). Có lẽ đã rời khỏi đó sau một số thử nghiệm, tôi đã quên tất cả về nó, và không thể tìm ra vấn đề là gì.

Loại bỏ nó đã giải quyết vấn đề cho tôi.


0

Đây có thể là câu trả lời sai cho bạn. Nhưng đây là lần đầu tiên trên Google khi tôi cố gắng giải quyết vấn đề của mình. Nói vậy ...

Thông báo lỗi tương tự cũng xảy ra với tôi, nhưng khi tôi cố chạy IIS Express thông qua Visual Studio.

Vấn đề của tôi là tôi đã nhầm lẫn việc áp dụng ứng dụng của mình vào TFS. Sau này khi tôi cố gắng chạy dự án trên máy tính xách tay của mình sau khi nhận được các cam kết mới nhất. đó là khi xảy ra lỗi

Tôi thấy rằng đường dẫn thư mục ảo là sai.

<virtualDirectory path="/" physicalPath="C:\Users\giddan\Documents\Visual Studio 2015\Projects\ProjectName\DeV.ProjectName\DeV.ProjectName.Web" />

Mong rằng điều này sẽ giúp được ai đó!

Đây là bài viết đầu tiên của tôi, vì vậy hãy nhẹ nhàng :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.