Kesalahan HTTP 500.19 dan kode kesalahan: 0x80070021

219

Saya memiliki webAPI build sederhana oleh Visual Studio 2013. Ini berfungsi dengan baik ketika saya menjalankannya dari VS13 tetapi ketika saya menyalin proyek di IIS lokal itu memberi saya kesalahan berikut.

Kesalahan HTTP 500.19 - Kesalahan Server Internal Halaman yang diminta tidak dapat diakses karena data konfigurasi terkait untuk halaman tidak valid.

Informasi Kesalahan Rinci:

Modul IIS Web Core

Pemberitahuan BeginRequest

Handler Belum ditentukan

Kode Kesalahan 0x80070021

Kesalahan Konfigurasi Bagian konfigurasi ini tidak dapat digunakan di jalur ini. Ini terjadi ketika bagian dikunci di tingkat induk. Penguncian secara default (overrideModeDefault = "Tolak"), atau disetel secara eksplisit oleh tag lokasi dengan overrideMode = "Tolak" atau warisan allowOverride = "false".

File Konfigurasi \? \ C: \ inetpub \ wwwroot \ APITeslin \ web.config

Sumber Konfigurasi:

36:   <system.webServer>  
37:     <handlers>  
38:       <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
Umar Abbas
sumber
Ini kemungkinan otentikasi Windows dinonaktifkan di IIS, tetapi diperlukan di web.config aplikasi Anda.
SpaceBison
@ SpaceBison bagaimana saya bisa mengaktifkan Window Authentication di IIS8?
Umar Abbas
Berikut ini tautan dari file konfigurasi web saya. icopter.co.uk/Webconfig.txt
Umar Abbas
Sudahkah Anda mempertimbangkan untuk menggunakan modul penulisan ulang URL?

Jawaban:

346

Mendapat kesalahan yang sama persis dan datang ke pertanyaan ini. Seperti @SpaceBison disebutkan dalam komentar, jawaban ini menjelaskan solusinya - https://stackoverflow.com/a/12867753/404099 . Saya melihatnya terlambat dan melewatkan beberapa langkah. Inilah yang bekerja untuk saya:

Windows Server 2012, IIS 8.5 . Harus bekerja untuk versi lain juga.

  • Buka pengelola server, klik tambahkan peran dan fitur
  • Di bagian peran pilih: Server Web
    • Di bawah Subbagian Keamanan pilih semuanya (Saya mengecualikan intisari, batasan IP, dan otorisasi URL karena kami tidak menggunakannya)
    • Di bawah Pengembangan Aplikasi pilih .NET Extensibility 4.5, ASP.NET 4.5 dan keduanya entri ISAPI
  • Di bagian fitur pilih: NET 3.5, .NET 4.5, ASP.NET 4.5
  • Di bagian server web pilih: Server Web (semua), Alat Manajemen (Konsol Manajemen IIS dan Layanan Manajemen), Otentikasi Windows - jika Anda menggunakan semua itu
Ilia Barahovski
sumber
13
Yang harus saya tambahkan adalah item .NET 4.5 di bagian AppDev dan bagian Fitur. Item ekstensibilitas juga memaksa 2 entri ISAPI.
Bill
Langkah-langkah itu membantu saya dengan masalah. Terima kasih.
psulek
Akhirnya, solusi untuk mengatasi penyakit saya. Terima kasih, itu masuk akal, dan ini cukup sederhana. Tampaknya selalu ada fitur dan peran yang hilang hari ini ...
Alexandru
ServerManager tidak tersedia di Windows7 Home, bagaimana cara memperbaikinya?
knocte
1
@knocte - di Windows 7 Anda dapat memasukkan "Copot pemasangan atau ubah program" dan kemudian tekan "Aktifkan atau nonaktifkan fitur Windows". Ini tidak sama dengan Server Manager, tetapi Anda dapat menginstal IIS dan fitur terkait dengan cara ini.
Ilia Barahovski
122

Saya mendapat kesalahan ini ketika mencoba meng-host layanan WCF dalam aplikasi ASP.NET kosong. Seluruh solusi menggunakan platform .NET 4.5, pada IIS 8.5 yang berjalan pada Windows 8.1. Gotcha adalah untuk

  1. Buka "Nyalakan atau matikan Fitur Windows"

  2. Pergi ke bagian WCF di bawah layanan lanjutan ASP.NET 4.5

  3. Periksa Aktivasi HTTP.

  4. Anda akan diminta untuk me-restart sistem.

    Tangkapan Layar

Ini seharusnya Memperbaiki HTTP 500.19!

EDIT 11-FEB-2016 Baru saja mendapatkan masalah pada Windows 10 Pro, IIS 10, Kali ini, itu adalah HTTP 404.0. Cara mengatasinya masih sama, nyalakan "Aktivasi HTTP" di bawah Fitur Windows -> .NET Framework 4.6 Layanan Lanjutan -> Layanan WCF -> Aktivasi HTTP

Sudhanshu Mishra
sumber
Terima kasih banyak @dotnetguy! :-) itu bekerja untuk saya juga. Kesalahan terjadi ketika saya mencoba meng-host Web API 2.2 dan MVC pada aplikasi ASP.NET kosong.
Gurusinghe
@dnetnetguy Inilah yang membantu saya setelah tidak bisa membuat IIS bekerja dengan aplikasi MVC lokal saya di Visual Studio. Terima kasih banyak. Aktivasi HTTP !
Silkfire
@silkfire senang itu membantu!
Sudhanshu Mishra
@dotnetguy Terima kasih
Heemanshu Bhalla
@dotnetguy Mendapat masalah yang sama persis dan ini menyelesaikannya! Terima kasih banyak! Anda benar-benar orang Net! : D
Rian
47

Saya juga mendapatkan masalah yang sama tetapi setelah brain storming dengan IIS dan google selama berjam-jam. Saya menemukan solusinya. Kesalahan ini karena beberapa pengaturan dinonaktifkan di IIS applicationHost.config.

Di bawah ini adalah langkah-langkah untuk solusi:

  1. Pergi ke C:\Windows\System32\inetsrv\config\applicationHost.configdan buka di notepad
  2. Ubah nilai kunci berikut yang ada di

    • <section name="handlers" overrideModeDefault="Deny" /> ubah nilai ini dari "Tolak" ke "Izinkan"

    • <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> ubah nilai ini dari "Tolak" ke "Izinkan"

Ini berhasil untuk saya.

SeeTheC
sumber
2
Terima kasih. Setelah melakukan langkah-langkah ini, kesalahan berikutnya muncul. Saya bisa menyelesaikannya seperti dijelaskan di sini: stackoverflow.com/a/30594003/434742
Jenny O'Reilly
31

Jika Anda menjalankan IIS di komputer itu untuk pertama kalinya, Anda harus mencoba menjalankan alat pendaftaran ASP.NET IIS (aspnet_regiis.exe).

Berikut cara melakukannya: Jika Anda menggunakan .net framework v4, buka command prompt sebagai administrator, dan ubah direktori ke folder .net framework framework Anda menggunakan:

CD C:\Windows\Microsoft.NET\Framework\v4.0.30319

atau, jika Anda menggunakan komputer 64 bit, gunakan:

CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319

ketika Anda berhasil menavigasi ke direktori yang sesuai, jalankan alat pendaftaran ASP.NET IIS menggunakan:

aspnet_regiis -i

Jika Anda menggunakan versi .NET framework yang berbeda, cukup ganti v4.0.30319dengan nama folder yang sesuai.

Semoga ini membantu.

Ibrahim Dauda
sumber
Saya mencoba menjalankan dua proyek VS yang berbeda di server iis saya (mesin virtual); satu bekerja, satu tidak ... Di atas membantu mendapatkan yang pertama bekerja; adakah alasan ke-2 tidak seharusnya bekerja?
JosephDoggie
7
Saya menggunakan metode ini di masa lalu tetapi aspnet_regiis tidak lagi didukung pada Windows 8.1. Untuk mendaftar 4.5 gunakan Program dan Fitur> Nyalakan atau matikan fitur Windows> Layanan Informasi Informasi> Layanan Web Luas Dunia> Fitur Pengembangan Aplikasi> Periksa ASP.NET 4.5 dan apa pun yang mungkin Anda perlukan.
masterwok
1
ini perlu dijalankan sebagai Administrator (klik kanan pada ikon cmd.exe -> jalankan sebagai administrator), dan bahkan jika dapat mendeteksi kesalahan selama operasi (dan menghasilkan file log), itu berhasil untuk saya!
knocte
2
Untuk IIS 8.5 pada Windows 8.1 (atau Windows Server 2012) ini tidak berfungsi. Saya mendapat prompt berikut: C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319> aspnet_regiis.exe-i Mulai menginstal ASP.NET (4.0.30319.33440). Opsi ini tidak didukung pada versi sistem operasi ini. Sebaliknya, administrator harus menginstal / menghapus instalan ASP.NET 4.5 dengan IIS8 menggunakan dialog "Aktifkan / Nonaktifkan Fitur Windows, alat manajemen Server Manager, atau alat baris perintah dism.exe.
Sudhanshu Mishra
Terima kasih!! Ini berfungsi untuk saya dengan IIS 10 dan Windows 10 :)
Víctor Beltrán
22

Saya memecahkan ini dengan melakukan hal berikut:

WebServer(ISS)->WebServer->Application Development
add .NET Extensibility 3.5
add .NET Extensibility 4.5
add ASP.NET 4.5
add ISAPI Extensions
add ISAPI Filters

masukkan deskripsi gambar di sini

GIOESCOM
sumber
10

Pada Windows 8.1, IIS 8.5 solusi bagi saya adalah mendaftar 4.5 dari panel kontrol:

Program dan Fitur> Menghidupkan atau mematikan fitur Windows> Layanan Informasi Informasi> World Wide Web Services> Fitur Pengembangan Aplikasi> Pilih ASP.NET 4.5

Klik OK.

Jon
sumber
3
Di bawah Windows 10 pilihan adalah 'ASP', ASP.NET.35. ', Dan' ASP.NET 4.6 '. Memeriksa 4,6 bekerja untuk saya. Terima kasih!
PeterVermont
Saya pikir ini adalah jawaban yang paling ringkas dan mudah dipahami.
themefield
4

Sebagai kesalahan idnicates - "Ini terjadi ketika bagian dikunci pada tingkat induk". Untuk membuka kunci bagian Anda dapat menggunakan appcmd.exe dan menjalankan perintah berikut:

%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers -commitpath:apphost

Untuk informasi lebih lanjut tentang penguncian bagian dan konteks konfigurasi induk merujuk ke dokumentasi IIS .

Taras Alenin
sumber
4

Dalam kasus kami, kami berjuang dengan kesalahan ini selama beberapa hari. Ternyata di panel kontrol, program, menghidupkan atau mematikan fitur windows.

Kami memilih Layanan Informasi Internet, layanan web di seluruh dunia, fitur pengembangan Aplikasi dan di sana kami memeriksa serangkaian fitur yang terkait dengan lingkungan pengembangan kami. Sebagai contoh: ASP.NET 4.6. .NET Extensibility 4.6, dll.

Berhasil!

Javier Livio
sumber
1
Ini memperbaiki masalah saya juga. Jadi masalah akhirnya adalah bahwa setelah menambahkan IIS ke mesin lokal saya, saya tidak mengaktifkan fitur yang tepat. Ini menyelesaikannya. Terima kasih.
jbooker
3

Coba buka kunci pengaturan konfigurasi IIS (7.5) yang relevan di tingkat server, sebagai berikut:

  1. Buka IIS Manager
  2. Pilih server di panel Koneksi
  3. Buka Editor Konfigurasi di panel utama
  4. Pada drop down Bagian, pilih bagian untuk membuka kunci, mis. System.webServer> defaultPath
  5. Klik Buka Kunci Atribut di panel kanan
  6. Ulangi untuk pengaturan lain yang perlu Anda buka
  7. Restart IIS (opsional) - Pilih server di panel Conncetions, klik Restart di panel Actions
Chris
sumber
Ini hampir membantu tetapi pada IIS 7 tidak ada "defaultPath" di bawah system.webServer
Djorge
Maksudnya jika Anda mencari untuk memperbarui Otentikasi Windows maka Anda akan menemukannya di jalur system.webServer -> Keamanan -> Otentikasi.
Mido
3

Dalam kasus saya, ada aturan untuk modul penulisan ulang URL IIS tetapi saya tidak menginstal modul itu. Anda harus memeriksa web.config Anda jika ada modul yang disertakan tetapi tidak diinstal.

HasanG
sumber
1
Baru saja menginstal semua yang dibutuhkan, tetapi masih belum berhasil. Kemudian, saya baru saja menginstal modul URL Rewrite, dan membuatnya berfungsi! Terima kasih!
Vitox
Jika modul Penulisan Ulang URL tidak ada, kode kesalahan tidak akan menjadi 0x80070021.
Lex Li
3

Jika windows 10 maka buka PowerShell sebagai admin dan jalankan perintah berikut:

dism /online /enable-feature /all /featurename:IIS-ASPNET45
pengguna2912206
sumber
1

Web.config Anda menjelaskan bahwa Anda menggunakan otentikasi formulir - pastikan Anda mengaktifkan otentikasi formulir dan menonaktifkan otentikasi anonim di IIS di bawah menu Otentikasi, untuk situs web yang berjalan di IIS.

SpaceBison
sumber
0

Harap <staticContent />beri baris dan hapus dari web.config.

Erdogan
sumber
0

Kami menggunakan Amazon Web Services dan kami ingin menggunakan skrip dan program untuk mengatasi masalah ini. Jadi saya telah mencari alat baris perintah. Jadi pertama-tama saya mencoba trik berlari

c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

tetapi karena saya menjalankan Windows Server 2012 berbasis cloud itu mengeluh

This option is not supported on this version of the operating system. Administrators should instead install/uninstall ASP.NET 4.5 with IIS8 using the "Turn Windows Features On/Off" dialog, the Server Manager management tool, or the dism.exe command line tool. For more details please see http://go.microsoft.com/fwlink/?LinkID=216771.

dan saya mencari Google dan menemukan Halaman Dukungan Resmi Microsoft KB2736284 . Jadi ada alat baris perintah dism.exe. Jadi saya mencoba yang berikut ini

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

tapi itu mengeluh dan memberikan daftar nama fitur untuk dicoba, jadi saya mencobanya satu per satu dan saya menguji halaman web WebAPI saya setelah masing-masing dan itu bekerja setelah yang terbawah dalam daftar.

dism /online /enable-feature /featurename:IIS-ApplicationDevelopment
dism /online /enable-feature /featurename:IIS-ISAPIFilter 
dism /online /enable-feature /featurename:IIS-ISAPIExtensions 
dism /online /enable-feature /featurename:IIS-NetFxExtensibility45 

Dan sekarang saya dapat menjelajah ke situs WebAPI saya dan melihat informasi API. Itu seharusnya membantu beberapa orang. [Namun, saya sendiri belum keluar dari hutan dan saya tidak dapat menjangkau situs web dari luar kotak. Masih mengerjakannya.]

Juga, saya melakukan beberapa langkah sebelumnya mengikuti tanggapan orang lain. Saya dapat mengonfirmasi bahwa Delegasi Fitur berikut perlu diubah (walaupun saya ingin menemukan alat baris perintah untuk ini).

In Feature delegation

Change 
'Handler Mappings' from Read Only to Read/Write

Change 
'Modules' from Read Only to Read/Write

Change 
'SSL Settings' from Read Only to Read/Write
S Meaden
sumber
-1

Periksa apakah server IIS menginstal fitur penulisan ulang URL.
Jika tidak diinstal maka pastikan file web.config Anda tidak memiliki konfigurasi URL terkait menulis ulang

<!-- Make sure don't have below config, if server have not installed url rewrite feature. -->
<rewrite>
  <rules>
    <rule name="Fail bad requests">
      <match url=".*"/> ...

Beberapa waktu kami menyalin konfigurasi dari server lama dan langsung menyebar ke server baru, maka kami mungkin mengalami masalah seperti 500.

Frank Myat Thu
sumber
Jika penulisan ulang URL tidak ada, kode kesalahan tidak akan menjadi 0x80070021.
Lex Li
-3

Solusi yang berhasil bagi saya adalah menghapus Web.config saya saat ini dan menambahkan yang baru. Itu memecahkan masalah bagi saya

Pheko Moroke
sumber
6
Mengundurkan diri dari pekerjaan saya lebih mudah daripada membuat web.config baru. Jangan pernah mencoba melakukannya.
Shadi Namrouti