TLDR: Öncelikle hatayı boru hattından nereden aldığınızı belirleyin (hatanıza benzeyen bir şeyin ekran görüntülerini aramak için kaydırın), yeni bir şey almak için değişiklikler yapın, tekrarlayın.
Öncelikle hangi hata mesajını gördüğünüzü belirleyin.
Burada bulunan dosyayı görüyorsanız ...
% SistemSürücüsü% \ inetpub \ custerr \\ 500.htm
... genellikle şöyle görünür:
... o zaman ** IIS ** ' de şu anda yapılandırılmış hata sayfasını gördüğünüzü biliyorsunuz ve ASP.net customErrors ayarını, asp hata detay ayarını veya "kolay http hatalarını göster" tarayıcı ayarını değiştirmeniz gerekmiyor.
Birisi değiştiğinde ekran görüntüme güvenmek yerine yukarıda belirtilen yola bakmak isteyebilirsiniz.
"Evet, yukarıda açıklanan hatayı görüyorum ..."
Bu durumda, < httpErrors > ayarını veya IIS Yöneticisi'nde Hata Sayfaları -> Özellik Ayarlarını Düzenle'yi görürsünüz . Bunun varsayılanı errorMode = AyrıntılıLocalOnly sunucu düğümü düzeyinde (site düzeyinin aksine) , yani bu yapılandırılmış hata sayfasını uzaktayken göreceksiniz, ancak sunucuda yerel olarak oturum açabilmeniz ve tam olarak böyle bir şey görünmelidir hatası:
Geçerli hatayı düzeltmek için o noktada ihtiyacınız olan her şeye sahip olmalısınız.
"Ama sunucuda gezinirken bile ayrıntılı hatayı göremiyorum"
Bu birkaç olasılık bırakır.
- Sunucuda kullandığınız tarayıcı, bağlantı ayarlarında bir proxy kullanacak şekilde yapılandırılmıştır, böylece "yerel" olarak görülmez.
- Aslında göz attığınızı düşündüğünüz siteye göz atmıyorsunuz - bu genellikle bir yük dengeleyicisi olduğunda olur. DNS'nin size sunucuda veya başka bir yerde bir IP verip vermediğini görmek için bir ping kontrolü yapın.
- Sitenizin httpErrors ayarları yalnızca "Özel" olarak ayarlanmış. "AyrıntılıKonumuOnly" olarak değiştirin. Ancak, bir yapılandırma hatası varsa, site düzeyi httpErrors da bir yapılandırma öğesi olduğundan bu çalışmayabilir. Bu durumda # 4'e geçin
- Tüm siteler için httpErrors varsayılanı "Özel" olarak ayarlanmıştır. Bu durumda, IIS Yöneticisi'nde (belirli bir siteyi değil) üst düzey sunucu düğümünü tıklatmanız ve httpErrors'u değiştirmeniz gerekir oradaki ayarlarını AyrıntılıLocalOnly olarak . Bu dahili bir sunucuysa ve hassas bilgileri açıklama konusunda endişelenmiyorsanız, sunucudan başka istemcilerden gelen hatayı görmenizi sağlayacak olan "Ayrıntılı" olarak da ayarlayabilirsiniz.
- Sunucuda UrlRewrite gibi bir modül eksik (bu beni çok ısırıyor ve httpErrors ayarlarından bağımsız olarak genellikle genel mesajı veriyor).
"Sunucuda oturum açmak benim için bir seçenek değil"
Uzaktan görebilmeniz için sitenizin http Hatalarını "Ayrıntılı" olarak değiştirin . Ancak işe yaramazsa, hatanız zaten bir yapılandırma hatası olabilir, hemen yukarıdaki # 3'e bakın. Böylece # 4 veya # 5 ile sıkışmış olabilirsiniz ve sunucu ekibinizden birine ihtiyacınız olacak.
"Yukarıda açıklanan hata sayfasını görmüyorum. Farklı bir şey görüyorum"
Bunu görürsen ...
... ve böyle bir şey görmeyi umuyorsun ...
... sonra Site -> IIS -> ASP -> Hata Ayıklama Özellikleri altında IIS Yöneticisi'nde "Tarayıcıya hata gönder" değerini true olarak değiştirmeniz gerekir
Bunu görürsen ...
veya bu...
... tarayıcınızdaki kolay hataları devre dışı bırakmanız veya tarayıcınızın size göstermek için seçtikleri gerçek yanıta bakmak için kemancının web görünümünü kullanmanız gerekir.
Bunu görürsen ...
... sonra özel hatalar çalışıyor ama özel bir hata sayfanız yok (elbette bu noktada klasik asp değil .net hakkında konuşuyordunuz). Web.config dosyasındaki customErrors etiketinizi sunucuda görüntülemek için RemoteOnly olarak veya uzaktan görüntülemek için Kapalı olarak değiştirmeniz gerekir.
Siteniz gibi stilize edilmiş bir şey görürseniz, özel hataların büyük olasılıkla Açık veya UzakKontrol ve özel sayfayı görüntülemesi (örneğin MVC'de Views-> Shared-> Error.cshtml). Bununla birlikte, birisinin httpErrors için IIS'deki sayfaları değiştirmesi pek mümkün değildir, ancak bu nedenle ilk bölüme bakın.