Olay günlüğüne hiçbir şey yazılmadığında IIS 7.5'te 500 Dahili Sunucu Hatası nasıl teşhis edilir?


43

Az önce mevcut bir ASP.NET MVC3 sitesine (zaten yapılandırılmış) bir güncelleme yaptım ve ölüm bildiren IIS mavi ekranını alıyorum

HTTP Hatası 500.0 - Dahili Sunucu Hatası
Bir dahili sunucu hatası oluştuğundan sayfa görüntülenemiyor.

Ancak; Uygulama Olay Günlüğü'nde, girişin (daha fazla) ayrıntılı bir tanımını görmeyi beklediğim hiçbir şey görünmüyor.

Bu sorunu teşhis etme hakkında nasıl gidebilirim?


Burada da aynı sorunu yaşadım. Tecrübelerime göre, olay günlüğü istekten daha boşsa, çalışan işlemine doğru şekilde yönlendirilmemiştir. Son dağıtımlarımızdan birinde, uygulamanın 500 hatayla rastgele başarısız olan isteklerin yaklaşık% 50'sinde aralıklarla çalıştığını ve günlüklerde hiçbir şey olmadığını gördük. Dağıtımdan sonra ortaya çıkan AppDomain boşaltma işleminde bir sorun olduğunu düşünüyorum. Meraktan, üretim ortamınızda virüsten koruma yazılımı mı kullanıyorsunuz? Bir IIS sıfırlaması sorunu çözdü mü (bir sonraki dağıtıma kadar)?
ShadowChaser

Yanıtlar:


41

IIS7'nin Başarısız İstek İzleme özelliğine bir göz atın:

IIS 7'de İzlemeyi Kullanarak Hatalı İsteklerde Sorun Giderme Hatalı İstek İzleme İle İlgili
Sorunları Giderme

Yapacağım diğer şey ise, <httpErrors>ayarlarınızı değiştirmekti; çünkü IIS, boru hattının üstünden bir hata mesajı yutuyor olabilir:

<configuration>
  <system.webServer>
    <httpErrors existingResponse="PassThrough" />
  </system.webServer>
</configuration>

Site Classic ASP'de yazılmışsa , ASP yapılandırma özelliğinde Hataları Tarayıcıya Gönder ayarını açtığınızdan emin olun :

görüntü tanımını buraya girin

Ve son olarak, Internet Explorer kullanıyorsanız , Gelişmiş ayarlarda Dostça HTTP hata mesajlarını göster ( kapalı olduğundan emin olmanıza rağmen, bunu zaten yaptığınızdan veya farklı bir tarayıcı kullandığınızdan şüpheleniyorum).


2
existResponse, Değiştir olarak ayarlandı. Bahşiş için teşekkürler.
Greg B,

Bu çok iyi bir cevap ama ASP yapılandırma penceresinin nasıl başlatılacağını da dahil ederse geliştirilebilir.
Michael Potter

13

Benim durumumda:

  • Olay Günlüğü boştu.
  • web.config bozuk değildi - yerel makinede aynısını kullanarak / kullanarak doğrulandı inetmgr

En sonunda...

  • IIS günlüklerini kontrol etmek böyle bir istek gösterdi

...Chrome/57.0.2987.133+Safari/537.36 500 19 5 312

Anahtar olmak:

sc-status sc-substatus sc-win32-status 500 19 5

hangi googling ile bana klasöre IIS_USRSokuma izinleri olmadığını işaret ettiwww


2
Durum kodlarının listesini burada buldum: support.microsoft.com/en-us/help/943891/…
sirdank

4

En belirgin sorun web uygulama klasöründe uygunsuz veya sıfır NTFS haklarıdır. Bu nedenle, siteye hizmet veren hesabın doğru izinlere sahip olduğundan emin olun. Web dizini için uygun NTFS hakları olmadan, web.config dosyasına ne yazdığınızın önemi yoktur, çünkü asla okunmayacaktır.

Herkese tam haklar vermek hızlı bir kontrol olabilir - site çalışmaya başlarsa, bunun bir hak sorunu olduğunu bilirsiniz ve daha uygun bir hesaba uygun haklar atamak için ayarlayabilirsiniz.


1

IIS6'dan yükseltme yapıyorsanız, web.config 6'da çalışır, ancak IIS 7.5'te olmaz ... Web sitesi için IIS'deki tüm simgelere çift tıklayın ve format hakkında bir hata alabilirsiniz (Bölüm) diğer bölümün altında olmalı ...)


0

Azure Web Uygulaması ile aynı sorunu yaşadım. Yerel olarak hata ayıklama yaparken, ajax çağrılarından döndürülen hata mesajları (JSON) tamamen tarayıcıya döndürüldü. Ancak bir kez Web Uygulaması'na dağıtıldığında, mesajlar yutuldu ve varsayılan 500 hata iletisine döndüm. Bu yüzden açıkça web.config etiketindeki existingResponsedeğeri ayarlamak zorunda kaldım .PassThroughhttpErrors

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.