2010-10-22 26 views
14

gövdesini kaldırır Ben ASP.NET sunucusunun geçerli olduğu veri yayınlanmıştır eğer 400 Response.StatusCode ayarlar (4.0) kodu yazdım.
Yanıt gövdesinde, isteğin üstbilgi isteği kabul ettiği biçimdeki yararlı bilgiler koyarım. örneğin "Tarih alanı gerekli ..." diyen bir html mesajı. Windows 7'de IIS7'nin (7.5.7600) olarak400 Kötü Request

Ben tarayıcıya geri doğru html yanıt almak. Geri html gövdesini alamadım Windows 2008 tarihinde IIS7'nin (7.5.6000) olarak

ancak içerik olarak "Kötü Request" içeren bir metin gövdesi.

birisi cesedi dönmek için 2008 sunucusunun yapılandırmasını değiştirmek nasıl bana gösterebilir.
Veya bu IIS sürümleri arasında bir fark var mı?
Belki de Machine.config dosyasındaki bir modül var mı? Örneğin
biliyorum (ve geçici zorunda) FormsAuthentication modülü bu istemiyorsanız bile 302'nin bir 401 değişir. Gönderilen 400'ün içeriğini durduran bir modül olabilir.

TIA.

cevap

29

Çözüm: web.config System.webServer bölümü düzenlenmiş ve httpErrors existingResponse "geçiş" ve voila sabit şekilde ayarlayın.
yani: Ben uzak bir sunucuya
2. ile localhost'u karşılaştırarak çünkü
1. klasik CustomErrors davranış ilk nasıl bazı açıklamıyor: 2 şey beni bu konuda düşünmek var

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

Eh How to Use HTTP Detailed Errors in IIS 7.0

tamamen ben fo ne ilgilendirmeyen etmedi: benim diğer Authentication 'error' Etrafa kazılmış ve IIS7 bu makalede rastladım bozulmamış

yoluyla elde edildi und web.config dosyasını düzenlerken belki de IIS7.5'i kullanmamı isterdim ama beni doğru mahalleye götürmek için yeterliydi.

** Ayrıca, IIS 10 artık HTTP2'yi desteklediğinden, HTTP2'ye yükseltme isteğinde bulunulduğunda metin içeren StatusDescriptions öğesinin artık desteklenmediğini unutmayın, bu nedenle 400 (Hatalı İstek) ile yanıt verirseniz, bu yalnızca 400 nolu sayıya sıyrılacaktır. "HTTP/2 does not define a way to carry the version or reason phrase that is included in an HTTP/1.1 status line." web.config değiştiren bir seçenek değilse

+0

Çok teşekkürler, düzgün ** Stackoverflowing olmadan ben bir gün boşa :-) çiftleşmeye ** sorun. –

8

aşağıya yardımcı olabilir:

Response.TrySkipIisCustomErrors = true; 
+0

Bu, seçici uygulama için iyi olabilir. Benim durumumda, sadece AJAX yanıtlarımın yalnız bırakılmasını istiyorum, böylece istemci kodu, kendisine yönelik hata mesajlarını alsın. – Will