HTTP Hatası 500.19 ve hata kodu: 0x80070021


219

Visual Studio 2013 tarafından basit bir webAPI inşa var. VS13 çalıştırdığınızda iyi çalışır, ancak yerel IIS projeyi kopyaladığınızda bana aşağıdaki hatayı verir.

HTTP Hatası 500.19 - Dahili Sunucu Hatası Sayfa için ilgili yapılandırma verileri geçersiz olduğu için istenen sayfaya erişilemiyor.

Ayrıntılı Hata Bilgileri:

Modül IIS Web Çekirdeği

Bildirim BeginRequest

İşleyici Henüz belirlenmedi

Hata Kodu 0x80070021

Yapılandırma Hatası Bu yapılandırma bölümü bu yolda kullanılamaz. Bu, bölüm üst düzeyde kilitlendiğinde olur. Kilitleme varsayılan olarak (overrideModeDefault = "Deny") veya açıkça overrideMode = "Deny" veya eski allowOverride = "false" olan bir konum etiketi ile ayarlanır.

Yapılandırma Dosyası \? \ C: \ inetpub \ wwwroot \ APITeslin \ web.config

Yapılandırma Kaynağı:

36:   <system.webServer>  
37:     <handlers>  
38:       <remove name="ExtensionlessUrlHandler-Integrated-4.0" />

Bu, IIS'de Windows kimlik doğrulaması devre dışı bırakılmış olabilir, ancak uygulamanızın web.config dosyasında gereklidir.
SpaceBison


@SpaceBison IIS8'de Pencere Kimlik Doğrulamasını nasıl etkinleştirebilirim?
Umar Abbas

İşte webconfig dosyamın bağlantısı. icopter.co.uk/Webconfig.txt
Umar Abbas

URL yeniden yazma modülünü kullanmayı düşündünüz mü?

Yanıtlar:


346

Aynı hatayı aldım ve bu soruya geldim. @SpaceBison'un yorumlarda belirtildiği gibi, bu cevap çözümü açıklar - https://stackoverflow.com/a/12867753/404099 . Çok geç tespit ettim ve bazı adımları kaçırıyor. Benim için işe yarayan buydu:

Windows Server 2012, IIS 8.5 . Diğer sürümler için de çalışmalıdır.

  • Sunucu yöneticisine gidin, rol ve özellik ekle'yi tıklayın
  • Roller bölümünde şunları seçin: Web Sunucusu
    • Güvenlik alt bölümü altında her şeyi seçin (kullanmadığımız için özet, IP kısıtlamaları ve URL yetkilendirmesini hariç tuttum)
    • Uygulama Geliştirme altında .NET Genişletilebilirlik 4.5, ASP.NET 4.5 ve her iki ISAPI girdisini seçin
  • Özellikler bölümünde şunu seçin: NET 3.5, .NET 4.5, ASP.NET 4.5
  • Web sunucusu bölümünde şunları seçin: Web Sunucusu (tümü), Yönetim Araçları (IIS Yönetim Konsolu ve Yönetim Hizmeti), Windows Kimlik Doğrulaması - herhangi birini kullanıyorsanız

13
Eklemek zorunda olduğum tek şey AppDev bölümündeki ve Özellikler bölümündeki .NET 4.5 öğeleriydi. Genişletilebilirlik öğesi 2 ISAPI girdisini de zorladı.
Bill

Bu adımlar sorunla ilgili bana yardımcı oluyor. Teşekkürler.
psulek

Son olarak, rahatsızlıklarımı çözmek için bir çözüm. Teşekkürler, mantıklı ve yeterince basit. Bu günlerde her zaman özellikler ve roller eksik gibi görünüyor ...
Alexandru

ServerManager Windows7 Home'da mevcut değil, nasıl düzeltilir?
knocte

1
@knocte - Windows 7'de "Program kaldır veya değiştir" yazıp "Windows özelliklerini aç veya kapat" tuşuna basabilirsiniz. Bu Sunucu Yöneticisi ile aynı değildir, ancak IIS'yi ve ilgili özellikleri bu şekilde yükleyebilirsiniz.
Ilia Barahovski

122

Boş bir ASP.NET uygulamasında bir WCF hizmeti barındırmaya çalışırken bu hatayı aldım. Tüm çözüm, Windows 8.1 üzerinde çalışan IIS 8.5 üzerinde .NET 4.5 platformunu kullanıyordu. Anladım

  1. "Windows Özelliklerini açma veya kapatma" seçeneğini açın

  2. ASP.NET 4.5 gelişmiş hizmetleri altındaki WCF bölümüne gidin

  3. HTTP Etkinleştirmesini kontrol edin.

  4. Sistemi yeniden başlatmanız istenir.

    Ekran Görüntüsü

Bu HTTP 500.19'u düzeltmelidir!

11-FEB-2016 DÜZENLEME Windows 10 Pro, IIS 10'da bir sorun var Düzeltme hala aynı, Windows Özellikleri -> .NET Framework 4.6 Gelişmiş Hizmetleri -> WCF Hizmetleri -> HTTP Etkinleştirmesi altında "HTTP Etkinleştirmesi" ni açın


Çok teşekkür ederim @dotnetguy! :-) benim için de çalıştı. Boş ASP.NET uygulamasında Web API 2.2 ve MVC barındırmaya çalıştığımda hata geldi.
Gurusinghe

@dotnetguy Bu, IIS'nin Visual Studio'daki yerel MVC uygulamamla çalışmasını sağlayamadıktan sonra bana yardımcı olan şeydi. Çok teşekkürler. HTTP Aktivasyonu öyle!
İpek ateşi

@silkfire yardımcı oldu sevindim!
Sudhanshu Mishra

@dotnetguy Teşekkürler
Heemanshu Bhalla

@dotnetguy Aynı sorunu aldım ve bu çözüldü! Çok teşekkürler! Gerçekten .Net bir adamsın! : D
Rian

47

Aynı sorunu alıyordum ama IIS ve google ile beyin fırtınası yaptıktan sonra saatlerce. Çözümü buldum. Bu hata, IIS'de bazı ayarların devre dışı bırakılmış olmasıdır applicationHost.config.

Çözüm için adımlar aşağıdadır:

  1. C:\Windows\System32\inetsrv\config\applicationHost.configNot defterine git ve aç
  2. Aşağıdaki anahtar değerini değiştirin

    • <section name="handlers" overrideModeDefault="Deny" /> bu değeri "Reddet" yerine "İzin Ver" olarak değiştirin

    • <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> bu değeri "Reddet" yerine "İzin Ver" olarak değiştirin

Benim için çalıştı.


2
Teşekkür ederim. Bu adımları uyguladıktan sonra bir sonraki hata ortaya çıktı. Burada açıklandığı gibi çözebilirim: stackoverflow.com/a/30594003/434742
Jenny O'Reilly

31

IIS'yi bu bilgisayarda ilk kez çalıştırıyorsanız, ASP.NET IIS kayıt aracını (aspnet_regiis.exe) çalıştırmayı denemelisiniz.

Bunu nasıl yapacağınız aşağıda açıklanmıştır: .net framework v4 kullanıyorsanız, komut istemini yönetici olarak açın ve dizini .net framework temel klasörünüzle değiştirin:

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

veya 64 bit bir bilgisayar kullanıyorsanız şunları kullanın:

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

uygun dizine başarıyla geçtiğinizde, ASP.NET IIS kayıt aracını kullanarak şunları yürütün:

aspnet_regiis -i

Farklı bir .NET framework sürümü kullanıyorsanız v4.0.30319, uygun klasör adıyla değiştirin.

Bu yardımcı olur umarım.


Iis sunucumda (sanal makine) iki farklı VS projesi çalıştırmaya çalışıyorum; biri çalışıyor, biri çalışmıyor ... Yukarıdaki ilk çalışmayı sağladı; 2.'sinin çalışmaması için bir neden var mı?
JosephDoggie

7
Geçmişte bu yöntemi kullandım ancak aspnet_regiis artık Windows 8.1'de desteklenmiyor. 4.5'i kaydetmek için Programlar ve Özellikler> Windows özelliklerini açma veya kapatma> Bilgi Bilgi Servisleri> World Wide Web Hizmetleri> Uygulama Geliştirme Özellikleri> ASP.NET 4.5'i ve ihtiyacınız olabilecek her şeyi kontrol edin.
masterwok

1
bunun Yönetici olarak çalıştırılması gerekir (cmd.exe simgesine sağ tıklayın -> yönetici olarak çalıştırın) ve hatta işlem sırasında hataları algılasa bile (ve bir günlük dosyası üretebilir), benim için çalıştı!
knocte

2
Windows 8.1 (veya Windows Server 2012) üzerindeki IIS 8.5 için bu çalışmaz. Aşağıdaki istemi aldım: C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319> aspnet_regiis.exe -i ASP.NET'i yüklemeye başlayın (4.0.30319.33440). Bu seçenek işletim sisteminin bu sürümünde desteklenmez. Yöneticiler bunun yerine "Windows Özelliklerini Aç / Kapat" iletişim kutusunu, Sunucu Yöneticisi yönetim aracını veya dism.exe komut satırı aracını kullanarak ASP.NET 4.5'i IIS8 ile birlikte yüklemeli / kaldırmalıdır.
Sudhanshu Mishra

Teşekkürler!! IIS 10 ve Windows 10 ile benim için çalışıyor :)
Víctor Beltrán

22

Bunu aşağıdakileri yaparak çözdüm:

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

resim açıklamasını buraya girin


10

Windows 8.1, IIS 8.5'te benim için çözüm 4.5'ü kontrol panelinden kaydetmekti:

Programlar ve Özellikler> Windows özelliklerini açma veya kapatma> Bilgi Bilgi Hizmetleri> World Wide Web Hizmetleri> Uygulama Geliştirme Özellikleri> ASP.NET 4.5'i seçin

Tamam'ı tıklayın.


3
Windows 10'da seçenekler 'ASP', ASP.NET.35. 'Ve' ASP.NET 4.6 'idi. 4.6 kontrol etmek benim için çalıştı. Teşekkürler!
PeterVermont

Bence bu en kısa ve anlaşılması kolay cevap.
themefield

4

Hata düzeldiğinde - "Bu, bölüm üst düzeyde kilitlendiğinde olur". Bölümün kilidini açmak için appcmd.exe'yi kullanabilir ve aşağıdaki komutu yürütebilirsiniz:

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

Bölüm kilitleme ve üst yapılandırma bağlamının ne olduğu hakkında daha fazla bilgi için IIS belgelerine bakın .


4

Bizim durumumuzda, bu hatayla birkaç gün mücadele ettik. Kontrol panelinde, programlarda, pencere özelliklerini açar veya kapatır.

İnternet Bilgi Servislerini, dünya çapındaki web servislerini, Uygulama geliştirme özelliklerini seçtik ve orada geliştirme ortamımızla ilişkili özellikleri kontrol ediyoruz. Örneğin: ASP.NET 4.6. .NET Genişletilebilirliği 4.6 vb.

İşe yarıyor!


1
Bu da benim sorunumu çözdü. Bu nedenle, sonuçta yerel makineme IIS ekledikten sonra uygun özellikleri etkinleştirmedim. Bu çözdü. Thnks.
jbooker

3

Sunucu düzeyinde ilgili IIS (7.5) yapılandırma ayarlarının kilidini aşağıdaki şekilde açmayı deneyin:

  1. IIS Yöneticisi'ni açın
  2. Bağlantılar bölmesinde sunucuyu seçin
  3. Ana bölmede Yapılandırma Düzenleyicisi'ni açın
  4. Bölümler açılır menüsünde, kilidi açılacak bölümü seçin, örn. System.webServer> defaultPath
  5. Sağ bölmedeki Özelliğin Kilidini Aç'ı tıklayın.
  6. Kilidi açmanız gereken diğer ayarlar için bu işlemi tekrarlayın
  7. IIS'yi Yeniden Başlat (isteğe bağlı) - Bağlantılar bölmesinde sunucuyu seçin, Eylemler bölmesinde Yeniden Başlat'ı tıklatın.

Bu, hemen hemen yararlıdır ama IIS 7 üzerinde system.webServer altında hayır "DefaultPath" var
Djorge

Bununla birlikte, Windows Kimlik Doğrulamasını güncellemek istiyorsanız, bunu system.webServer -> Güvenlik -> Kimlik Doğrulama yolunda bulacaksınız.
Mido

3

Benim durumumda, IIS URL Yeniden Yazma modülü için kurallar vardı, ancak bu modülü yüklemedim. Web.config dosyanızı dahil edilmiş ancak kurulmamış modüller olup olmadığını kontrol etmelisiniz.


1
Sadece gereken her şeyi yükledim, ama yine de işe yaramadı. Sonra, URL Yeniden Yazma modülünü yeni kurdum ve çalıştırdım! Teşekkürler!
Vitox

URL Yeniden Yazma modülü eksikse, hata kodu 0x80070021 olmayacaktır.
Lex Li

3

Windows 10 ise powershell'i yönetici olarak açın ve aşağıdaki komutu çalıştırın:

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

1

Web.config dosyanız, form kimlik doğrulamasını kullandığınızı açıklar - IIS'de çalışan web sitesi için, Kimlik Doğrulama menüsü altındaki IIS'de form kimlik doğrulamasını etkinleştirdiğinizden ve anonim kimlik doğrulamasını devre dışı bıraktığınızdan emin olun .


0

Lütfen <staticContent />satırı web.config'den silin ve silin.


0

Amazon Web Services kullanıyoruz ve bu nedenle bu sorunu çözmek için komut dosyaları ve programlar kullanmak istiyoruz. Bu yüzden bir komut satırı aracı arayışı içindeyim. Önce koşma hilesini denedim

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

ancak bulut tabanlı bir Windows Server 2012 çalıştırdığım için şikayet etti

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.

ve Google'ı ziyaret ettim ve resmi Microsoft Destek Sayfasını KB2736284 buldum . Yani bir komut satırı aracı var dism.exe. Bu yüzden aşağıdakileri denedim

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

ancak şikayet etti ve denemek için bir dizi özellik listesi verdi, bu yüzden onları tek tek denedim ve her birinden sonra WebAPI web sayfamı test ettim ve listede alttan sonra çalıştı.

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 

Ve şimdi WebAPI siteme göz atabilir ve API bilgilerini görebilirim. Bu birkaç kişiye yardım etmeli. [Ancak henüz ormandan çıkamıyorum ve kutunun dışından web sitesine ulaşamıyorum. Hala üzerinde çalışıyor.]

Ayrıca, diğer insanların yanıtlarını takip ederek daha önce bazı adımlar attım. Aşağıdaki Özellik Temsilcisinin değiştirilmesi gerektiğini doğrulayabilirim (bunlar için bir komut satırı aracı bulmak istiyorum).

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

-1

IIS sunucusunun URL yeniden yazma özelliğini yükleyip yüklemediğini kontrol edin.
Yüklü değilse, web.config dosyanızın URL'yi yeniden yazma ile ilgili yapılandırmaya sahip olmadığından emin olun

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

Bir zamanlar yapılandırmayı eski sunucudan kopyaladık ve hemen yeni sunucuya konuşlandırdık, o zaman bu tür 500 sorunla karşılaşabiliriz.


URL Yeniden Yazma eksikse, hata kodu 0x80070021 olmaz.
Lex Li


-3

Benim için çalışan çözüm, geçerli Web.config dosyamı silmek ve yeni bir tane eklemekti. Bu benim için problemi çözdü


6
İşimden istifa etmek, yeni bir web.config oluşturmaktan daha kolaydır. Asla bunu yapmaya çalışmayın.
Shadi Namrouti
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.