Windows IIS Üzerinde “HTTP Error 500.19” Hatası Çözümü
Windows IIS Üzerinde “HTTP Error 500.19” Hatası Çözümü
HTTP Error 500.19 – Internal Server Error, IIS (Internet Information Services) üzerinde bir web sitesi açılırken genellikle bozuk yapılandırma (misconfiguration) veya erişim izinleri kaynaklı olarak ortaya çıkan bir hatadır. Bu hata, web.config dosyası veya IIS ayarlarında çakışma olduğunda sık görülür. Bu makalede, 500.19 hatasının nedenlerini, hata kodlarını ve adım adım çözüm yöntemlerini inceleyeceğiz.
- 1. HTTP Error 500.19 Nedir?
- Yaygın Alt Kodlar:
- 2. Hata Mesajının Tam Yolunu Öğrenme
- 3. Olası Nedenler
- 4. Çözüm 1: web.config Dosyasını Doğrulama
- 5. Çözüm 2: IIS Yetkilerini Düzeltme
- Application Pool Kullanıcısı Erişimi:
- 6. Çözüm 3: Modül veya Handler Çakışmasını Kaldırma
- 7. Çözüm 4: Uygulama Havuzu (App Pool) Ayarlarını Kontrol Etme
- 8. Çözüm 5: Eksik ASP.NET Özelliklerini Yükleme
- 9. Çözüm 6: applicationHost.config Temizliği
- 10. Çözüm 7: Event Viewer Analizi
- 11. Güvenlik Önerisi
- Sonuç
1. HTTP Error 500.19 Nedir?
Bu hata, IIS’in web.config veya applicationHost.config dosyalarındaki yapılandırmayı doğru şekilde okuyamaması sonucu oluşur. Hata genellikle şu şekilde görünür:
HTTP Error 500.19 - Internal Server Error The requested page cannot be accessed because the related configuration data for the page is invalid.
Yaygın Alt Kodlar:
- 0x8007000d – Bozuk XML veya geçersiz karakter.
- 0x80070021 – Modül çakışması (örneğin IIS + ASP.NET handler).
- 0x80070005 – Yetki eksikliği (NTFS izin sorunu).
2. Hata Mesajının Tam Yolunu Öğrenme
Tarayıcıda görülen hata ekranı genellikle “Detailed Error Information” kısmında yol ve hata kodunu gösterir:
Config Error: Cannot read configuration file due to insufficient permissions Config File: \\?\C:\inetpub\wwwroot\web.config
Bu bilgi, hangi dizin veya dosyada sorun olduğunu belirlemede önemlidir.
3. Olası Nedenler
- web.config dosyasında hatalı XML yapısı.
- IIS modüllerinin çakışması (örneğin ASP.NET Core ve Classic ASP aynı anda etkin).
- NTFS izinlerinde “IIS_IUSRS” veya “Network Service” eksikliği.
- Application Pool Identity’nin erişim sorunu.
- Yüklü olmayan bir .NET Framework sürümünün çağrılması.
4. Çözüm 1: web.config Dosyasını Doğrulama
web.config dosyasını bir XML editörüyle açarak yapısal bütünlüğünü kontrol edin.
xmllint --noout C:\inetpub\wwwroot\web.config
Hatalı etiket, eksik kapanış veya yanlış karakter varsa düzenleyin.
5. Çözüm 2: IIS Yetkilerini Düzeltme
Site kök dizininde gerekli izinleri aşağıdaki komutla verin:
icacls "C:\inetpub\wwwroot" /grant "IIS_IUSRS:(OI)(CI)(RX,M)" icacls "C:\inetpub\wwwroot" /grant "Network Service:(OI)(CI)(RX,M)"
Application Pool Kullanıcısı Erişimi:
icacls "C:\inetpub\wwwroot" /grant "IIS APPPOOL\MyAppPool:(OI)(CI)(RX,M)"
6. Çözüm 3: Modül veya Handler Çakışmasını Kaldırma
web.config içerisinde <modules> veya <handlers> bölümünde yinelenen modüller varsa kaldırın. Örneğin:
<remove name="WebDAVModule"/> <remove name="FormsAuthentication"/>
Ardından IIS’i yeniden başlatın:
iisreset
7. Çözüm 4: Uygulama Havuzu (App Pool) Ayarlarını Kontrol Etme
“Application Pools” sekmesinde:
- Doğru .NET CLR sürümünü seçin (örneğin .NET CLR v4.0).
- “Managed Pipeline Mode” değerini Integrated olarak ayarlayın.
- Gerekirse App Pool’u yeniden başlatın.
8. Çözüm 5: Eksik ASP.NET Özelliklerini Yükleme
Windows Özellikleri üzerinden ASP.NET bileşenlerini etkinleştirin:
dism /online /enable-feature /featurename:IIS-ASPNET45 /all dism /online /enable-feature /featurename:IIS-ISAPIExtensions /all dism /online /enable-feature /featurename:IIS-ISAPIFilter /all
9. Çözüm 6: applicationHost.config Temizliği
IIS yapılandırma dosyasının (C:\Windows\System32\inetsrv\config\applicationHost.config) bozuk olması durumunda varsayılan kopyayla değiştirin:
copy applicationHost.config.default applicationHost.config
10. Çözüm 7: Event Viewer Analizi
Detaylı hata loglarını görmek için Event Viewer’ı kullanın:
Event Viewer → Windows Logs → Application → Source: IIS-W3SVC-WP
11. Güvenlik Önerisi
- web.config dosyasını FTP veya metin editörleriyle düzenlerken UTF-8 BOM karakteri eklenmemelidir.
- RC4 veya DES gibi zayıf şifreleme modülleri kaldırılmalıdır.
- Sunucu loglarını düzenli olarak döngüsel şekilde arşivleyin (
LogrotateveyaTask Schedulerile).
Sonuç
HTTP Error 500.19 hatası, genellikle erişim izinleri veya yapılandırma bozukluklarından kaynaklanır. Hata kodunu ve ilgili dosyayı dikkatle analiz etmek sorunu hızlıca çözmenizi sağlar. Bu tür IIS yönetimi sorunlarında, kurumsal ölçekli barındırma ortamlarında HostLigo Windows Sunucu çözümleri ile optimize edilmiş IIS altyapısı kullanmak hem performans hem güvenlik açısından en iyi yaklaşımdır.