500.21 Mô-đun bị lỗi “ManagedPipelineHandler” trong danh sách mô-đun của nó


83

Tôi đang gặp lỗi:

Lỗi HTTP 500.21 - Trình xử lý lỗi máy chủ nội bộ "CloudConnectHandler" có mô-đun không hợp lệ "ManagedPipelineHandler" trong danh sách mô-đun của nó

tệp web.config của tôi trông như thế này:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="CloudConnectHandler" verb="*" path="CloudConnect.aspx" type="CloudConnectHandler" resourceType="Unspecified" />
    </handlers>
  </system.webServer>
  <system.web>
    <customErrors mode="Off" />
    <compilation debug="true" targetFramework="4.0" batch="false">
      <assemblies>
        <add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
      </assemblies>
    </compilation>
    <pages>
      <controls>
        <add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" />
      </controls>
    </pages>
        <identity impersonate="true" />
        <authentication mode="Forms" />
  </system.web>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <providerOption name="CompilerVersion" value="v4.0" />
        <providerOption name="WarnAsError" value="false" />
      </compiler>
    </compilers>
  </system.codedom>
  <appSettings>
    <add key="CloudConnectAuthorization" value="xxxx" />
    <add key="ConnectionInfo" value="xxxx" />
    <add key="ConnectionString" value="xxxx" />
    <add key="DefaultChannel" value="xxxx" />
    <add key="LoginValidationConnectionString" value="xxxx" />
  </appSettings>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="protobuf-net" publicKeyToken="257b51d87d2e4d67" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.0.640" newVersion="2.0.0.640" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Có rất nhiều lời khuyên trên mạng chỉ ra rằng asp.net không được cài đặt đúng cách. Cách khắc phục thông thường là chạy:

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

hoặc là

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i

Tôi đã chạy cả hai, không có bất kỳ lỗi nào. Tôi đã khởi động lại IIS nhưng sự cố vẫn tiếp diễn. Trang web đang sử dụng một nhóm ứng dụng. Nhóm ứng dụng được khởi động, .net framework = 4.0, Managed Pipeline = Classic, Identity = LocalSystem.

Tôi đã dành vài giờ qua để tìm ra vấn đề là gì. Tôi hy vọng ai đó có thể giúp đỡ.

Câu trả lời:


18

Thử chuyển sang chế độ Tích hợp. Xem chuỗi sau:

IIS 7, HttpHandler và Lỗi HTTP 500.21


Tôi đã chuyển nó sang tích hợp, điều này gây ra một lỗi khác. Khi tôi đã sửa lỗi đó, mọi thứ bắt đầu hoạt động bình thường. Cảm ơn bạn.
George Mastros

"Bỏ phiếu xuống" cho điều này. Tôi đã bật chế độ tích hợp. @Armaan trả lời ngắn gọn nhưng hoàn hảo.
echology

Câu trả lời này hợp lệ, nó giải quyết được sự cố của tôi, tôi đã sử dụng NET 3.5 và gặp lỗi 500.21. chuyển sang chế độ tích hợp đã giải quyết vấn đề của tôi.
freedeveloper

185

Vui lòng làm theo các bước sau:

1) Chạy dấu nhắc lệnh với tư cách quản trị viên.

2) Nhập một trong hai dòng bên dưới vào dấu nhắc lệnh:

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

hoặc là

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

2
Chào mừng đến với SO và cảm ơn câu trả lời của bạn. Câu trả lời này đã được gắn cờ để xem xét vì tính ngắn gọn của nó. Mặc dù câu trả lời của bạn có thể đúng về mặt kỹ thuật, nhưng nó có thể được cải thiện với một số văn bản khác, giải thích vấn đề cơ bản mà OP đang gặp phải và lý do tại sao câu trả lời của bạn hoạt động.
Kỹ sư phần mềm

8
đây là văn bản khác. vì nó hoạt động muhahahaha +1. Tôi nghĩ lý do thực sự là nếu bạn cài đặt 4.5.1 trước rồi dán IIS vào nó sẽ không tự động nhận ra đúng không. hoặc tôi có điều đó theo thứ tự ngược lại. một trong hai cách. điều này làm việc cho tôi
hubson bropa

Đây là giải pháp!
alexroat

4
Tôi đang xây dựng một máy chủ 2008 R2 mới (vâng, vào năm 2015) và tôi đã cài đặt 4.5.x đầu tiên và sau đó bị mắc kẹt IIS sau đó .. như @hubsonBropa đã đề cập trong bình luận của anh ấy. Điều này đã giúp tôi vượt qua rào cản đầu tiên.
bkwdesign

Nếu bạn đang sử dụng .NET 4.5.x hoặc 4.6.x, đừng để bị lừa bởi câu trả lời đề cập đến 4.0 và nghĩ rằng nó không áp dụng cho bạn. Sự cố này có thể liên quan đến thứ tự cài đặt .NET trước IIS, như đối với tôi. Chạy lệnh (trong trường hợp của tôi là phiên bản 64 bit) đã sửa nó ngay cả khi ứng dụng của tôi đang sử dụng .NET 4.5.2.
Coxy

51

Tôi đã gặp lỗi này trên bản dựng mới của Windows Server 2012 R2. IIS và .NET 4.5 đã được cài đặt nhưng Vai trò máy chủ ASP.NET (trong trường hợp của tôi là phiên bản 4.5) chưa được thêm vào. Đảm bảo rằng phiên bản ASP.NET bạn cần đã được thêm / cài đặt như ASP.NET 4.5 có trong ảnh chụp màn hình này.

Vai trò máy chủ ASP.NET


Bây giờ là ASP.NET 4.7 (Svr 2016)
bentecko

31

Để khắc phục sự cố, tôi đã cố gắng chạy

% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -i

Tuy nhiên, nó không hoạt động với tôi. Tôi phải chạy một dòng lệnh khác trong cửa sổ CMD với tư cách quản trị viên. Đây là lệnh:

dism / online / enable-feature / featurename: IIS-ASPNET45

hoặc là

dism / online / enable-feature / featurename: IIS-ASPNET45 / all

Hy vọng nó sẽ giúp ích.


Đây giải quyết nó cho tôi là tốt trên Window 10 Preview Build 10.074 với IIS 10
Shawn McGough

3
Lệnh dism đã làm việc cho tôi sau khi loại bỏ %từ đầu. Vì vậy, tôi chạy: dism /online /enable-feature /featurename:IIS-ASPNET45 /all.
Schmalls

1
Hoạt động trên Windows Server 2016! Cảm ơn rất nhiều!
Adrian Księżarczyk

4

Tôi gặp lỗi này trên ứng dụng ASP.Net 4.5 trên Windows Server 2012 R2.

Vào menu bắt đầu -> "Bật hoặc tắt các tính năng của cửa sổ". Một thuật sĩ xuất hiện cho tôi.

Nhấp vào Tiếp theo đến Vai trò máy chủ

Tôi đã phải kiểm tra những điều này để làm cho điều này hoạt động, nằm trong Máy chủ Web IIS-> Máy chủ Web-> Phát triển ứng dụng (những điều này dựa trên câu trả lời của Jeremy Cook ở trên):

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

Sau đó, nhấp vào bên cạnh Tính năng và đảm bảo rằng các mục sau được chọn:

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

Sau đó nhấp vào tiếp theo và Cài đặt. Tại thời điểm này, lỗi đã biến mất đối với tôi. Chúc may mắn!


3

Điều này là do IIS 7 sử dụng trình xử lý http từ cả <system.web><httpHandlers><system.webServer><handlers>. nếu bạn cần CloudConnectHandler trong ứng dụng của mình, bạn nên thêm <httpHandlers>phần có trình xử lý này vào <system.web>:

<httpHandlers>
    <add verb="*" path="CloudConnect.aspx" type="CloudConnectHandler" />
</httpHandlers>

và cũng thêm preConditionthuộc tính vào trình xử lý trong <system.webServer>:

<handlers>
  <add name="CloudConnectHandler" verb="*" path="CloudConnect.aspx" type="CloudConnectHandler" preCondition="integratedMode" />
</handlers>

Hy vọng nó giúp


2

Đối với tôi, tôi đã nhận được thông báo lỗi này khi sử dụng PUThoặc DELETEvới WebAPI. Tôi cũng đã thử đăng ký lại .NET Framework theo đề xuất nhưng vô ích.

Tôi đã có thể khắc phục sự cố này bằng cách tắt WebDAV cho nhóm ứng dụng cá nhân của mình, điều này đã ngăn lỗi 'mô-đun xấu' khi sử dụng PUThoặc DELETE.

Tắt WebDAV cho Nhóm ứng dụng riêng lẻ:

  1. Nhấp vào nhóm ứng dụng bị ảnh hưởng
  2. Tìm WebDAV Authoring Toolstrong danh sách
  3. Bấm để mở nó
  4. Nhấp vào Disable WebDAVở trên cùng bên phải.

Liên kết này là nơi tôi tìm thấy hướng dẫn nhưng nó không rõ ràng lắm.


1
Vấn đề của tôi chính xác. Đặt và Xóa không hoạt động với WebDav được bật. Cảm ơn vì đã chia sẻ phát hiện của bạn!
İlter

2

Tôi đã gặp sự cố này trong Windows 10 khi tôi cần IIS thay vì IIS Express. Dự án Web mới không thành công với lỗi của OP. Đã sửa là

Control Panel > Turn Windows Features on or off > Internet Information Services > World Wide Web Services > Application Development Features

đánh dấu ASP.NET 4.7(trong trường hợp của tôi)


0

Tôi gặp sự cố này mỗi khi triển khai một trang web mới hoặc cập nhật một trang hiện có bằng MSDeploy .

Tôi có thể khắc phục sự cố này bằng cách dỡ bỏ miền ứng dụng bằng MSDeploy với cú pháp sau:

msdeploy.exe -verb:sync -source:recycleApp -dest:recycleApp="Default Web Site/myAppName",recycleMode=UnloadAppDomain

Bạn cũng có thể dừng, bắt đầu hoặc tái chế nhóm ứng dụng - thêm chi tiết tại đây: http://technet.microsoft.com/en-us/library/ee522997%28v=ws.10%29.aspx

Mặc dù giải pháp của Armaan đã giúp tôi gỡ rối nhưng nó không làm cho vấn đề biến mất vĩnh viễn.


0

nếu đó là IIS 8, hãy vào bảng điều khiển, bật / tắt các tính năng của cửa sổ và kích hoạt Bad "Kích hoạt đường ống được đặt tên" rồi khởi động lại IIS. Hy vọng điều tương tự cũng hoạt động với IIS 7


-1

Tôi phát hiện ra rằng thứ tự thêm các vai trò và tính năng là quan trọng. Trên một hệ thống mới, tôi kích hoạt vai trò "máy chủ ứng dụng" và ở đó kiểm tra rõ ràng .net, hỗ trợ máy chủ web và cuối cùng là xử lý dịch vụ kích hoạt Sau đó tự động xuất hiện một hộp thoại cho biết vai trò "máy chủ web" cũng cần được thêm vào.


-1

Cài đặt .NET framework như bên dưới, nó cũng sẽ hoạt động .NET phiên bản 4.5 .

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir

Một số thời gian chỉ cho aspnet_regiis.exe -ikhông hoạt động vì vậy nhượng bộ aspnet_regiis.exe -irtrên con đường trên.

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.