Cara memperbaikinya: Handler "PageHandlerFactory-Integrated" memiliki modul buruk "ManagedPipelineHandler" di daftar modulnya

543

Saya mengkonfigurasi proyek MVC 3 untuk bekerja pada instalasi lokal IIS dan menemukan 500 kesalahan berikut:

Handler "PageHandlerFactory-Integrated" memiliki modul buruk "ManagedPipelineHandler" di daftar modulnya.

Ternyata ini karena ASP.Net tidak sepenuhnya diinstal dengan IIS meskipun saya mencentang kotak itu dalam dialog "Tambahkan Fitur". Untuk memperbaiki ini, saya cukup menjalankan perintah berikut di command prompt

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

Jika saya menggunakan sistem 32 bit, akan terlihat seperti berikut:

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

Pertanyaan saya adalah, apakah ada cara untuk menginstal IIS pada kotak windows 7 untuk menggunakan .NET 4.0 (MVC 3) tanpa mengambil langkah ekstra ini?

hspain
sumber
2
Pertanyaan itu sebenarnya memecahkan masalah saya. Saya akan menjawab pertanyaan itu sebagai jawaban jika saya bisa. :)
Seregwethrin
Ya, deskripsi pertanyaan itu memecahkan masalah saya juga. Terima kasih :-)
sramsay

Jawaban:

950

Ternyata ini karena ASP.Net tidak sepenuhnya diinstal dengan IIS meskipun saya mencentang kotak itu dalam dialog "Tambahkan Fitur". Untuk memperbaiki ini, saya cukup menjalankan perintah berikut di command prompt

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

Jika saya menggunakan sistem 32 bit, akan terlihat seperti berikut:

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

Ingat untuk menjalankan command prompt sebagai administrator ( CTRL+ SHIFT+ ENTER)

hspain
sumber
Anda mungkin memiliki "Aspnet_regiis.exe tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dijalankan, atau file batch." kesalahan. Dalam hal ini Anda yang dapat dieksekusi bukan dari folder .NET 4.0, tetapi dari folder 2.0 (lihat jawaban saya di bawah ini)
Nikita G.
Di beberapa situs, saya membaca bahwa kami perlu menjalankan aspnet_regiis.exe tetapi tidak ada yang menjelaskan bahwa parameter diperlukan, jika tidak, tidak ada yang terjadi.
Pimenta
jawaban sederhana yang bagus. Saya tahu itu pemasangan yang buruk, tidak tahu bagaimana cara memperbaikinya.
elcool
Perhatikan bahwa jika Anda menggunakan Windows Server 2012, Anda harus melakukan ini melalui Kelola> Tambahkan Peran dan Fitur> Fitur. Dalam kasus saya, IIS8 harus diinstal / diaktifkan ASP.NET 4.5.
Stark
5
ingatlah untuk menjalankan sebagai administrator
Reid Evans
17

Jawaban yang diterima benar, namun terkadang Anda akan mendapatkan pesan kesalahan " Aspnet_regiis.exe tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dijalankan atau file batch. "

Untuk mengatasinya coba yang berikut ini:

  1. Pastikan bahwa pemasangan .NET 4.0 Anda tidak rusak (jalankan penginstal dan 'Perbaiki'). Ada juga kemungkinan itu tidak terpasang di mesin Anda sama sekali.

  2. Jika Anda yakin Anda belum menginstal .NET 4.0 dan ingin menjalankannya sebagai .NET 2.0, coba ini :

Jika Anda melihat pesan "Aspnet_regiis.exe tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dijalankan atau file batch.", Alihkan ke C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Aspnet_regiis.exe -i di command prompt.

Nikita G.
sumber
Aspnet_regiis.exe -i memperbaiki masalah saya di Win Server 2008 IIS7.
VSB
9

Untuk mengatasi masalah ini coba repair the .net framework 4dan kemudian jalankan perintah

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

Kesalahan: Handler "PageHandlerFactory-Integrated" memiliki modul buruk "ManagedPipelineHandler" di daftar modulnya

Saya menemukan artikel untuk memperbaiki masalah ini dengan hanya menjalankan perintah berikut di prompt perintah:

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

Jika sistemnya 32 bit, akan terlihat seperti ini:

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

Tapi, ketika saya mencoba menjalankan perintah ini menggunakan prompt perintah, saya mendapat pesan kesalahan / peringatan berikut:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS versi 4.0.30319.33440 Utilitas administrasi untuk menginstal dan menghapus instalan ASP.NET pada mesin lokal. Hak Cipta (C) Microsoft Corporation. Seluruh hak cipta. Mulai menginstal ASP.NET (4.0.30319.33440). Opsi ini tidak didukung pada versi sistem operasi ini. Administrator sebaiknya menginstal / mencopot pemasangan ASP.NET 4.5 dengan IIS8 menggunakan dialog "Aktifkan / Nonaktifkan Fitur Win", alat manajemen Server Manager, atau alat baris perintah dism.exe. Untuk perincian lebih lanjut silakan lihat http://go.microsoft.com/fwlin k /? LinkID = 216771. Selesai menginstal ASP.NET (4.0.30319.33440). **

Untuk memperbaikinya pada Windows 8.1, saya akan menyarankan untuk melakukan hal berikut.

Larutan:

Goto: Mengaktifkan atau menonaktifkan fitur Windows -> Layanan Informasi Internet -> Layanan World Wide Web -> Fitur Pengembangan Aplikasi -> Aktifkan ASP.NET 4.5

Ini harus menyelesaikan masalah.

Shubham Gupta
sumber
Saya memiliki masalah yang sama. Terima kasih! Bagi saya, saya harus mengaktifkan "ASP.NET 4.6".
Jenny O'Reilly
4

Saya juga akan memeriksa yang sudah jelas terlebih dahulu: bahwa kumpulan aplikasi diatur ke kerangka kerja yang benar dan bahwa aplikasi IIS Anda benar-benar menunjuk ke folder tempat Anda meletakkan file Anda

BornToCode
sumber
Sangat jelas ... namun begitu mudah untuk diabaikan. Terima kasih!
Paul Lemke
Ini masalah bagi saya. Rupanya entah bagaimana saya menghapus ini atau diatur ke "No Managed Code." Beralih kembali ke v4.0 membuat situs saya memuat.
redOktober13
3

Jika Anda ingin menggunakan aplikasi MVC tanpa menginstal MVC, Anda dapat menggunakan MVC DLL dengan aplikasi Anda . Ini mulai menginstal MVC 3. Anda dapat menggunakan fitur dalam beberapa namespace Net 4.0 tanpa menginstal .Net menggunakan pendekatan yang sama.

David Veksler
sumber
4
mendaftar asp.net dengan iis tidak ada hubungannya dengan MVC yang hadir atau tidak, ya Anda dapat menyertakan dll yang diperlukan dalam folder bin Anda, tetapi jika iis tidak mengenali file asp tidak ada banyak yang bisa dilakukan oleh dll
Shekhar
3

Saya menambahkan jalur ISAPI / CGI untuk. Net 4. Yang tidak memperbaiki masalah. Jadi saya kemudian menjalankan perbaikan pada instalasi .Net V4 (Client and Extended). Yang meminta reboot. Ini memperbaikinya untuk saya.

Kent
sumber
2

Untuk memperbaikinya pada mesin Windows 8.1 Professional lakukan hal berikut.

  1. Instal Penginstal Platform Web. http://www.microsoft.com/web/downloads/platform.aspx

  2. Di Pemasang Platform Web, instal ASP.NET 4.5 (Fitur ini memiliki satu ketergantungan).

Jika Anda cukup mencoba perintah prompt cmd tersebut dari jawaban paling populer, Anda akan mendapatkan pesan kesalahan / peringatan berikut:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS versi 4.0.30319.33440 Utilitas administrasi untuk menginstal dan menghapus instalan ASP.NET pada mesin lokal. Hak Cipta (C) Microsoft Corporation. Seluruh hak cipta. Mulai menginstal ASP.NET (4.0.30319.33440). Opsi ini tidak didukung pada versi sistem operasi ini . Administrator sebaiknya menginstal / mencopot pemasangan ASP.NET 4.5 dengan IIS8 menggunakan dialog "Aktifkan / Nonaktifkan Fitur Win", alat manajemen Server Manager, atau alat baris perintah dism.e xe. Untuk perincian lebih lanjut silakan lihat http://go.microsoft.com/fwlin k /? LinkID = 216771. Selesai menginstal ASP.NET (4.0.30319.33440).

Kucing dalam sepatu
sumber
2

Saya telah mencoba melakukan aspnet_regiis di command prompt tetapi saya mendapat jawaban bahwa saya tidak memiliki hak admin. Kemudian, setelah beberapa googling dan mencari solusi saya mencoba klik kanan cmd dan menjalankannya sebagai admin. Dikonfirmasi ya ketika dialog muncul, berlari aspnet_iis lagi semut bekerja seperti pesona. Singkatnya: 1. periksa .NET framework di app_pool 2. jalankan cmd sebagai admin 3. jalankan aspnet_regiis -i

Willow
sumber
2

Saya memiliki masalah yang sama dan solusi saya adalah:

Pergi ke "Mengaktifkan atau menonaktifkan fitur Windows"> Layanan Informasi Internet> Layanan World Wide Web> Fitur Pengembangan Aplikasi> Aktifkan ASP.NET 4.5

Ryan Burbidge
sumber
Ini berfungsi seperti pesona, tetapi apakah ada alasan mengapa saya tidak ingin melakukan ini pada server produksi, mengingat itu adalah "Fitur Pengembangan Aplikasi"?
Philip Stratford
Saya tidak cukup tahu tentang fitur itu untuk mengomentari menggunakannya di lingkungan produksi. Namun saya menemukan tautan ini yang mungkin membantu technet.microsoft.com/en-us/library/hh831475.aspx . Ini juga berisi perintah yang dapat Anda gunakan untuk menginstal modul IIS dan ASP.NET melalui command prompt, yang mungkin lebih cocok untuk kebutuhan produksi Anda.
Ryan Burbidge
1

Saya punya masalah serupa dengan Windows server 2012, menginstal fitur " Server Aplikasi " di manajer server memperbaiki masalah.

pengguna1255162
sumber
1

-Menggunakan fitur aplikasi initalization -meminta halaman yang salah (.asp) karena konfigurasi warisan

500.21 akan terjadi hanya pada koneksi pengguna pertama. Koneksi selanjutnya berfungsi.

Diselesaikan dengan memperbaiki koleksi url applicationInitialization di situs web .NET.

svl
sumber
1
  1. Lari cmd

  2. seret dan taruh Aspnet_regiis.exeke command prompt dari:

    C:\Windows\Microsoft.NET\Framework64\v2.0.50727\
  3. ketik -i(misalnya Aspnet_regiis.exe -i)

  4. tekan enter

  5. tunggu sampai proses selesai

Semoga berhasil!

pengguna11716116
sumber
0

Saya punya masalah ini dan menemukan bahwa menghapus folder berikut ini membantu, bahkan dengan edisi non-Express. Express:

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

Thomas Bratt
sumber
0

Tak satu pun dari ini bekerja untuk saya. Jadi, ketika saya membandingkan berbagai kumpulan aplikasi dengan yang berfungsi vs yang tidak, saya harus masuk ke Pengaturan Lanjutan untuk App Pool, dan mengatur

Aktifkan Aplikasi 32-Bit = true

Kemudian itu bekerja dengan baik!

LarryBud
sumber
0

Saya memiliki masalah yang sama, dalam penangan kasus saya ada di dua tempat:

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

Dan ketika saya menghapus handler saya dari [system.webServer] masalah saya hilang.

Wieslaw Olborski
sumber
0

dalam beberapa skenario kesalahan ini terjadi karena konfigurasi Microsoft .NET Framework 4.0 untuk ASP .NET telah rusak, yang dapat terjadi jika Microsoft Visual Studio 2012 diinstal sebelum Visual Studio 2010 atau Microsoft SQL Server 2008.

Setelah mencoba hal-hal yang berbeda saya mencapai kesimpulan, perbaiki Anda. Instalasi Net dengan menjalankan perintah berikut. Untuk informasi lebih lanjut, ikuti tautan.

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/library/hh168535(v=nav.80).aspx

sairfan
sumber
0

Untuk mengatasi masalah ini cobalah untuk memperbaiki .net framework 4 dan kemudian jalankan perintah

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

masukkan deskripsi gambar di sini

Nabeel
sumber
1
Sudahkah Anda membaca semua jawaban yang diposting sebelum memposting jawaban Anda sendiri?
M. Adeel Khalid
0

Saya mengalami masalah ini di salah satu server web saya ketika mencoba mengganti apppool dari klasik ke terintegrasi. Ini bekerja dengan baik pada dua server web saya yang lain, bukan hanya yang ini. Ini Server 2012, jadi Anda tidak dapat melakukan aspnet_regiis dan tidak ada folder setupcache untuk mencoba perbaikan itu. Semuanya diatur dengan benar di bawah fitur.

Setelah melalui% windir% \ system32 \ inetsrv \ config \ applicationHost.config, saya menemukan satu bit penting yang hilang. Di bawah yang tidak berfungsi saya kehilangan dua baris berikut:

        <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" />

Setelah saya menambahkannya, semuanya bekerja dengan baik.

Jason Baginski
sumber