Cách khắc phục: Trình xử lý Trang Handler TrangHandlerFactory-Tích hợp có một mô-đun xấu


543

Tôi đang định cấu hình dự án MVC 3 để hoạt động trên bản cài đặt IIS cục bộ và gặp phải lỗi 500 sau:

Handler "PageHandlerFactory-Integration" có một mô-đun xấu "ManagedPipelineHandler" trong danh sách mô-đun của nó.

Hóa ra điều này là do ASP.Net chưa được cài đặt hoàn toàn với IIS mặc dù tôi đã chọn hộp đó trong hộp thoại "Thêm tính năng". Để khắc phục điều này, tôi chỉ cần chạy lệnh sau tại dấu nhắc lệnh

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

Nếu tôi đã sử dụng hệ thống 32 bit, nó sẽ trông giống như sau:

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

Câu hỏi của tôi là, có cách nào để cài đặt IIS trên hộp windows 7 để sử dụng .NET 4.0 (MVC 3) mà không cần thực hiện thêm bước này không?


2
Câu hỏi thực sự đã giải quyết vấn đề của tôi. Tôi đã có thể trả lời câu hỏi như một câu trả lời nếu tôi có thể. :)
Seregwethrin

Vâng, mô tả câu hỏi cũng giải quyết vấn đề của tôi. Cảm ơn :-)
sramsay

Câu trả lời:


950

Hóa ra điều này là do ASP.Net chưa được cài đặt hoàn toàn với IIS mặc dù tôi đã chọn hộp đó trong hộp thoại "Thêm tính năng". Để khắc phục điều này, tôi chỉ cần chạy lệnh sau tại dấu nhắc lệnh

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

Nếu tôi đã sử dụng hệ thống 32 bit, nó sẽ trông giống như sau:

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

Remeber để chạy dấu nhắc lệnh với tư cách quản trị viên ( CTRL+ SHIFT+ ENTER)


Bạn có thể có "Aspnet_regiis.exe không được nhận dạng dưới dạng lệnh nội bộ hoặc bên ngoài, chương trình có thể hoạt động hoặc tệp bó." lỗi. Trong trường hợp này, bạn có thể thực thi không phải từ thư mục .NET 4.0, mà từ phiên bản 2.0 (xem câu trả lời của tôi bên dưới)
Nikita G.

Trong một số trang web, tôi đọc rằng chúng tôi cần chạy aspnet_regiis.exe nhưng không ai giải thích rằng tham số này là bắt buộc, nếu không thì không có gì xảy ra.
Pimenta

câu trả lời đơn giản tuyệt vời. Tôi biết đó là một cài đặt xấu, không biết làm thế nào để sửa nó.
elcool

Lưu ý rằng nếu bạn đang sử dụng Windows Server 2012, bạn sẽ cần điều này thông qua Manage> Thêm vai trò và tính năng> Tính năng. Trong trường hợp của tôi, IIS8 cần phải cài đặt / kích hoạt ASP.NET 4.5.
Stark

5
nhớ chạy với tư cách quản trị viên
Reid Evans

17

Câu trả lời được chấp nhận là chính xác, tuy nhiên đôi khi bạn sẽ nhận được thông báo lỗi " Aspnet_regiis.exe không được nhận dạng dưới dạng lệnh nội bộ hoặc bên ngoài, chương trình có thể hoạt động hoặc tệp bó. "

Để giải quyết nó, hãy thử như sau:

  1. Đảm bảo rằng cài đặt .NET 4.0 của bạn không bị hỏng (chạy trình cài đặt và 'Sửa chữa'). Cũng có khả năng nó không được cài đặt trên máy của bạn.

  2. Nếu bạn chắc chắn rằng bạn chưa cài đặt .NET 4.0 và muốn chạy nó dưới dạng .NET 2.0, hãy thử điều này :

Nếu bạn thấy thông báo "Aspnet_regiis.exe không được nhận dạng là lệnh nội bộ hoặc bên ngoài, chương trình có thể hoạt động hoặc tệp bó.", Hãy chuyển sang C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Aspnet_regiis.exe -i tại dấu nhắc lệnh.


Aspnet_regiis.exe -i đã khắc phục sự cố của tôi trên Win Server 2008 IIS7.
VSB

9

Để giải quyết vấn đề, hãy thử repair the .net framework 4và sau đó chạy lệnh

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

9

Lỗi: Trình xử lý Trang PageHandlerFactory-Tích hợp Có một mô-đun xấu, Managed ManagedPipelineHandler trực tiếp trong danh sách mô-đun

Tôi tìm thấy các bài viết để khắc phục vấn đề này bằng cách chạy các lệnh sau tại dấu nhắc lệnh:

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

Nếu hệ thống là 32 bit, nó sẽ trông như thế này:

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

Nhưng, khi tôi cố gắng thực hiện các lệnh này bằng dấu nhắc lệnh, tôi đã nhận được thông báo lỗi / cảnh báo sau:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS phiên bản 4.0.30319.33440 Tiện ích quản trị để cài đặt và gỡ cài đặt ASP.NET trên máy cục bộ. Bản quyền (C) Tập đoàn Microsoft. Đã đăng ký Bản quyền. Bắt đầu cài đặt ASP.NET (4.0.30319.33440). Tùy chọn này không được hỗ trợ trên phiên bản hệ điều hành này. Thay vào đó, các quản trị viên quản trị nên cài đặt / gỡ cài đặt ASP.NET 4.5 bằng IIS8 bằng hộp thoại "Bật / tắt tính năng cảm ứng Win", công cụ quản lý Trình quản lý máy chủ hoặc công cụ dòng lệnh eff.exe. Để biết thêm chi tiết, vui lòng xem http://go.microsoft.com/fwlin k /? LinkID = 216771. Hoàn tất cài đặt ASP.NET (4.0.30319.33440). **

Để khắc phục điều này trên Windows 8.1, tôi khuyên bạn nên làm điều sau đây.

Giải pháp:

Goto: Bật hoặc tắt các tính năng của Windows -> Dịch vụ thông tin Internet -> Dịch vụ web toàn cầu -> Tính năng phát triển ứng dụng -> Bật ASP.NET 4.5

Điều này sẽ giải quyết vấn đề.


Tôi đã từng gặp vấn đề tương tự. Cảm ơn! Đối với tôi, tôi đã phải kích hoạt "ASP.NET 4.6".
Jenny O'Reilly

4

Tôi cũng sẽ kiểm tra điều hiển nhiên trước: nhóm ứng dụng được đặt đúng khung và ứng dụng IIS của bạn thực sự trỏ đến thư mục nơi bạn đặt các tệp của mình


Quá rõ ràng ... nhưng rất dễ bỏ qua. Cảm ơn!
Paul Lemke

Đây là vấn đề đối với tôi. Rõ ràng bằng cách nào đó tôi bỏ đặt cái này hoặc nó được đặt thành "Không có mã được quản lý." Chuyển nó trở lại v4.0 đã tải trang web của tôi.
redOc / 1013

3

Nếu bạn muốn triển khai một ứng dụng MVC mà không cần cài đặt MVC, bạn có thể triển khai các DLL của MVC với ứng dụng của mình . Điều này xoay quanh việc cài đặt MVC 3. Bạn có thể sử dụng các tính năng trong một số không gian tên .Net 4.0 mà không cần cài đặt .Net bằng cách sử dụng một cách tiếp cận tương tự.


4
Đăng ký asp.net với iis không liên quan gì đến việc mvc có mặt hay không, vâng, bạn có thể bao gồm các dll cần thiết trong thư mục bin của mình, nhưng nếu iis không nhận ra các tệp asp thì không có nhiều thứ mà dlls có thể làm
Shekhar

3

Tôi đã thêm các đường dẫn ISAPI / CGI cho .Net 4. Không khắc phục được sự cố. Vì vậy, sau đó tôi đã chạy một sửa chữa trên cài đặt .Net V4 (Client và Extended). Mà yêu cầu khởi động lại. CÁi này đã sửa nó giúp tôi.


2

Để khắc phục điều này trên máy Windows 8.1 Professional, hãy làm như sau.

  1. Cài đặt Trình cài đặt nền tảng web. http://www.microsoft.com/web/doads/pl platform.aspx

  2. Trong Trình cài đặt nền tảng web, cài đặt ASP.NET 4.5 (Tính năng này có một phụ thuộc).

Nếu bạn chỉ cần thử lệnh nhắc cmd đã nói ở trên từ câu trả lời phổ biến nhất, bạn sẽ nhận được thông báo lỗi / cảnh báo sau:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS phiên bản 4.0.30319.33440 Tiện ích quản trị để cài đặt và gỡ cài đặt ASP.NET trên máy cục bộ. Bản quyền (C) Tập đoàn Microsoft. Đã đăng ký Bản quyền. Bắt đầu cài đặt ASP.NET (4.0.30319.33440). Tùy chọn này không được hỗ trợ trên phiên bản hệ điều hành này . Thay vào đó, các quản trị viên quản trị nên cài đặt / gỡ cài đặt ASP.NET 4.5 bằng IIS8 bằng hộp thoại "Bật / tắt tính năng cảm ứng Win", công cụ quản lý Trình quản lý máy chủ hoặc công cụ dòng lệnh của xe. Để biết thêm chi tiết, vui lòng xem http://go.microsoft.com/fwlin k /? LinkID = 216771. Hoàn tất cài đặt ASP.NET (4.0.30319.33440).


2

Tôi đã cố gắng thực hiện aspnet_regiis trong dấu nhắc lệnh nhưng tôi nhận được câu trả lời rằng tôi không có quyền quản trị. Sau đó, sau khi tìm hiểu thêm và tìm kiếm một giải pháp, tôi đã cố gắng nhấp chuột phải vào cmd và chạy nó với tư cách quản trị viên. Xác nhận có khi hộp thoại xuất hiện, chạy aspnet_iis một lần nữa kiến ​​hoạt động như một lá bùa. Tóm lại: 1. kiểm tra .NET framework trong app_pool 2. chạy cmd với tư cách quản trị viên 3. chạy aspnet_regiis -i


2

Tôi đã có cùng một vấn đề và giải pháp của tôi là:

Chuyển đến "Bật hoặc tắt các tính năng của Windows"> Dịch vụ thông tin Internet> Dịch vụ web toàn cầu> Tính năng phát triển ứng dụng> Bật ASP.NET 4.5


Điều này hoạt động như một cơ duyên, nhưng có lý do nào khiến tôi không muốn làm điều này trên một máy chủ sản xuất, vì đó là "Tính năng phát triển ứng dụng"?
Philip Stratford

Tôi không biết đủ về tính năng đó để nhận xét về việc sử dụng nó trong môi trường sản xuất. Tuy nhiên, tôi đã tìm thấy liên kết này có thể hữu ích technet.microsoft.com/en-us/l Library / hh831475.aspx . Nó cũng chứa một lệnh mà bạn có thể sử dụng để cài đặt các mô-đun IIS và ASP.NET thông qua dấu nhắc lệnh, có thể phù hợp hơn với nhu cầu sản xuất của bạn.
Ryan Burbidge

1

Tôi gặp vấn đề tương tự với máy chủ Windows 2012, cài đặt tính năng " Máy chủ ứng dụng " trong trình quản lý máy chủ đã khắc phục sự cố.


1

-Sử dụng tính năng khởi tạo ứng dụng - truy vấn các trang sai (.asp) vì kế thừa cấu hình

500,21 sẽ chỉ xảy ra trên kết nối người dùng đầu tiên. Kết nối sau đó làm việc.

Đã giải quyết bằng cách sửa bộ sưu tập url của ứng dụngInitialization trên trang web .NET.


1
  1. chạy cmd

  2. kéo và thả Aspnet_regiis.exevào dấu nhắc lệnh từ:

    C:\Windows\Microsoft.NET\Framework64\v2.0.50727\
  3. loại -i(ví dụ Aspnet_regiis.exe -i)

  4. Nhấn Enter

  5. chờ cho đến khi quá trình hoàn thành

Chúc may mắn!


0

Tôi gặp vấn đề này và thấy rằng việc xóa thư mục sau đây đã giúp ích, ngay cả với phiên bản không phải Express.Express:

C:\Users\<user>\Documents\IISExpress


0

Không ai trong số này làm việc cho tôi. Vì vậy, khi tôi so sánh các nhóm ứng dụng khác nhau với một nhóm hoạt động so với nhóm không hoạt động, tôi phải vào Cài đặt nâng cao cho Nhóm ứng dụng và đặt

Kích hoạt ứng dụng 32 bit = true

Sau đó, nó hoạt động tốt!


0

Tôi đã có cùng một vấn đề, trong trường hợp xử lý của tôi là ở hai nơi:

<system.web>
...
<httpHandlers>
 <add verb="*" path="*.ashx" type="ApplicArt.Extranet2.Controller.FrontController, ApplicArt.Extranet2.Web.UI" />
  </httpHandlers>
</system.web>

<system.webServer>
<handlers>
   ...
  <add name="FrontController" verb="*" path="*.ashx" type="ApplicArt.Extranet2.Controller.FrontController, ApplicArt.Extranet2.Web.UI"/>
</handlers>
</system.webServer>

Và khi tôi gỡ bỏ trình xử lý của mình khỏi [system.webServer], vấn đề của tôi biến mất.


0

trong một số trường hợp, lỗi này xảy ra do cấu hình Microsoft .NET Framework 4.0 cho ASP .NET đã bị hỏng, điều này có thể xảy ra nếu Microsoft Visual Studio 2012 được cài đặt trước Visual Studio 2010 hoặc Microsoft SQL Server 2008.

Sau khi thử những thứ khác nhau, tôi đã đạt được kết luận, sửa chữa cho bạn cài đặt .Net bằng cách chạy lệnh sau. Để biết thêm thông tin theo liên kết.

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SetupCache\v4.5.51209\setup.exe /repair /x86 /x64 /ia64 /norestart

https://msdn.microsoft.com/en-us/l Library / hh168535 (v = avav.80) .aspx


0

Để giải quyết vấn đề, hãy sửa chữa .net framework 4 và sau đó chạy lệnh

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

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


1
Bạn đã đọc tất cả các câu trả lời được đăng trước khi đăng của riêng bạn?
M. Adeel Khalid

0

Tôi đã gặp vấn đề này trên một trong những máy chủ web của mình khi cố gắng chuyển một apppool từ cổ điển sang tích hợp. Nó hoạt động tốt trên hai máy chủ web khác của tôi, không chỉ cái này. Đó là Server 2012, vì vậy bạn không thể thực hiện aspnet_regiis và không có thư mục setupcache để thử sửa chữa đó. Tất cả mọi thứ đã được đặt chính xác theo các tính năng.

Sau khi trải qua% Windir% \ system32 \ inetsrv \ config \ applicationhost.config tôi đã tìm thấy một bit bị thiếu nghiêm trọng. Theo tôi không làm việc, tôi đã bỏ lỡ hai dòng sau:

        <add name="ManagedEngineV4.0_32bit" image="C:\Windows\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
        <add name="ManagedEngineV4.0_64bit" image="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />

Khi tôi thêm chúng, mọi thứ đều hoạt động tốt.

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.