Windows hostingde ASP.NET ve IIS hatalarını düzeltin
Windows hostingde ASP.NET hatalarının nedenini bulun: 500.xx alt kodunu okuyun, ASP.NET Core stdout kaydını açın, web.config ve SQL Server hatalarını düzeltin.
- Orta
- 20 dk okuma
- Güncellendi
Bu sayfada
Windows hostingde siteniz IIS üzerinde çalışır. Bir istek başarısız olduğunda IIS, noktadan sonra bir alt kod taşıyan bir HTTP durumu gösterir; örneğin 500.19 veya 500.30. Bu alt kod nereye bakacağınızı söyler. Bu rehber en sık karşılaşılan kodları ve ayrıntıların nasıl okunacağını anlatır.
1. adım: Tam kodu not alın
Hatalı sayfayı açın ve tam kodu ve varsa HRESULT değerini (örneğin 0x8007000d) not alın. Ardından ayrıntıları görünür hale getirin:
ASP.NET Core
httpdocsiçindelogsadlı bir klasör oluşturun.web.configiçindeaspNetCoreöğesindestdoutLogEnabled="true"vestdoutLogFile=".\logs\stdout"değerlerini ayarlayın:
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout" />- Sayfayı yeniden yükleyin ve
logsiçindeki en yenistdout_….logdosyasını açın. - İşiniz bitince
stdoutLogEnabled="false"değerini yeniden ayarlayın.
ASP.NET (.NET Framework)
ASP.NET'in tam hatayı göstermesi için özel hataları kısa süreliğine kapatın. Plesk'te alan adının ASP.NET Settings bölümünü kullanın veya bunu web.config içinde ayarlayın:
<system.web>
<customErrors mode="Off" />
</system.web>Mesajı alır almaz değeri yeniden RemoteOnly veya On yapın: ayrıntılar herkese görünür.
500.19: yapılandırma verisi geçersiz
IIS web.config dosyasını okuyamıyor. HRESULT nedeni gösterir:
| HRESULT | Neden | Çözüm |
|---|---|---|
0x8007000d | Bozuk XML veya sunucuda olmayan bir modüle ait bölüm (ASP.NET Core için: sürümünüzün hosting paketi) | Hatada belirtilen satırı kontrol edin; gerekmeyen bölümleri kaldırın; .NET sürümünü bize sorun |
0x80070021 | Bölüm sunucu düzeyinde kilitli ve web.config içinde ayarlanamıyor | O bölümü web.config dosyasından kaldırın veya ayarın sizin için değiştirilip değiştirilemeyeceğini bize sorun |
0x800700b7 | Daha üst düzeyde zaten tanımlı bir ayar için yinelenen giriş | Yinelenen girişi web.config dosyanızdan kaldırın |
0x80070003 | IIS sitenin yolundaki yapılandırma dosyasını okuyamıyor | web.config dosyasının httpdocs içinde olduğundan emin olun |
500.30, 500.31 ve 502.5: uygulama başlamıyor (ASP.NET Core)
- 500.31 Failed to Find Native Dependencies: uygulamanızın hedeflediği .NET çalışma zamanı sunucuda kurulu değil. Sunucuda bulunan bir sürümü hedefleyin veya self-contained yayımlayın. Hangi sürümlerin bulunduğunu bize sorun.
- 500.30 In-Process Startup Failure: uygulama başlarken hata veriyor. stdout kaydı istisnayı gösterir; çoğu zaman eksik bir ayar veya başlangıçta başarısız olan bir veritabanı bağlantısıdır.
- 502.5 Process Failure: uygulamanın işlemi başlamıyor; çoğu zaman 500.31 ile aynı nedenle.
- 500.32 Failed to Load dll: uygulama farklı bir işlemci mimarisi için yayımlandı (örneğin 64 bite karşı 32 bit). Çalışma zamanı tanımlayıcısı olmadan, framework-dependent olarak yeniden yayımlayın.
403.14 Forbidden: klasör listeleme reddedildi
IIS ne bir uygulama ne de bir varsayılan sayfa buldu. Genellikle yayın eksiktir: dosyalar yanlış klasördedir, bazıları kopyalanmamıştır veya web.config eksiktir. Yayımlama çıktısının tamamını httpdocs içine yükleyin.
SQL Server: "The certificate chain was issued by an authority that is not trusted"
Microsoft.Data.SqlClient 4.0'dan beri bağlantılar varsayılan olarak şifrelenir ve sürücü sunucunun sertifikasını denetler. Uygulamanız sertifikayı doğrulayamazsa bağlantı bu mesajla başarısız olur.
- Sunucunuz için önerilen bağlantı ayarlarını bir destek talebiyle bize sorun.
- Şifreli ama sertifikayı denetlemeden bağlanmak için bağlantı dizesine
TrustServerCertificate=Trueekleyin. Microsoft bunun bağlantıyı araya girme saldırılarına açık bıraktığını belirtir; bunu geçici bir adım olarak görün.
Login failed for user. Bağlantı dizesindeki kullanıcı adı veya şifre Plesk'teki veritabanı kullanıcısıyla eşleşmiyor ya da kullanıcı o veritabanına atanmamış. Plesk'te kullanıcı için yeni bir şifre belirleyin ve bağlantı dizesini güncelleyin.
Sonraki adımlar
- Yeniden yayınlama: Plesk ile ASP.NET sitesi yayınlama.
- Her sürümden önce: hosting hesabınızı yedekleme ve geri yükleme.
Sık sorulan sorular
Neden yalnızca genel bir hata sayfası görüyorum?
IIS ve ASP.NET hata ayrıntılarını ziyaretçilerden bilerek gizler. Gerçek mesajı görmek için stdout kaydını (ASP.NET Core) kullanın veya özel hataları kısa süreliğine kapatın (ASP.NET).
Uygulama bilgisayarımda çalışıyor ama hostingde çalışmıyor. Neden?
Çoğu zaman sunucudaki .NET sürümü hedeflediğinizden farklıdır, bağlantı dizesi gibi bir ayar hâlâ bilgisayarınızı gösterir ya da yüklemede bir dosya eksiktir.
Windows olay günlüğünü veya IIS Manager'ı görebilir miyim?
Paylaşımlı Windows hostingde hayır; sunucuyu biz yönetiriz. Plesk, sitenizin web sunucusu kayıtlarını Logs altında gösterir. Daha fazlası için başarısız isteğin saatini ve adresini bir destek talebiyle bize gönderin.
stdout kaydını açık bırakabilir miyim?
Hayır. Microsoft, kaydın boyut sınırı olmadığını ve diski doldurabileceğini belirtir. Bir sorunu bulmak için açın, ardından yeniden kapatın.