2009-09-24 12 views
14

Response.StatusCode = 404 Ayarı ne IE8 ne de Chrome altında içerik sunmuyor? Garip bulsam da Mozilla'da çalışıyor!ASP.NET uygulamasında Response.StatusCode 200'den farklı OK nasıl programlanır ve hala istemciye başarıyla içerik hizmeti verir?

En basit şeyleri yapın - boş default.aspx sayfasındaki boş asp.net web uygulaması projesi.

protected void Page_Load(object sender, EventArgs e) 
{ 
    Response.StatusCode = 404; 
} 

Bu etkin 404 geçerli isteği, bundan hiç şüphe durum kodu ayarlar: Page_Load olayına aşağıdaki kullanın. IE8 veya Chrome altında görüntülendiğinde veya başka bazı tarayıcılarda da olabilirken - test etmedim, gerçek sayfa hiç görünmüyor. Bu tarayıcılar varsayılan 404 hata sayfalarını gösterir (varsayılan değil IIS özel hataları). IE8 Örnek: - değil sadece

The webpage cannot be found 
HTTP 404 
    Most likely causes: 
•There might be a typing error in the address. 
•If you clicked on a link, it may be out of date. ... and so on ... 

Ne gerçekten olsa yapmak istiyorum aslında tarayıcı veya tarayıcımızın veya bu sayfayı var olmadığını Her kim söyleyecektir 404 hata kodu ile 404 hata sayfasını hizmet etmektir Durum mesajı 200 ile bazı özel özel hata mesajı göster Tamam.

Kemancıyı kullanmak aslında gerçekten istekte olduğumu gösterir, ancak tarayıcı tamamen görmezden geliyor mu ?!

Soruma Soru: 404 durum kodunu nasıl ayarlayabilirim ve sayfa içeriğini oluşturmaya devam edebilirim? Örnek - http://www.intel.com/invalidpage.wow. Kemancıyı kullanmak bu sayfanın 404 durum koduyla sunulduğunu gösterir.

cevap

10

IE de gelenek gösterecektir Hata yanıtı yapılandırılabilir bir miktardan daha azsa hata sayfası. Miktarın 512 bayt olduğuna inanıyorum, ancak bunun hakkında bazı onaylar bulmaya çalışacağım. Yani tek yapmanız gereken, cevabınıza daha fazla içerik koymak.

DÜZENLEME: This blog yazısı sınırları tanımlar. Yorumlardan biri, bu değerleri değiştirmek için kayıt defteri ayarlarını gösterir. anahtarıdır: Microsoft \ Internet Explorer \ ANA \ ErrorThresholds

+2

Daha fazlası için burayı tıklayın: http://weblogs.asp.net/scottgu/archive/2006/04/09/App_5F00_Offline.htm-and-working-around-the-_2200_IE-Friendly-Errors_2200_-feature.aspx –

+0

Harika yardım ! Tam olarak anlamaya çalıştığım şey. Teşekkürler. –

+1

@JonGalloway bağlantınız bozuk, bunun yerine [this] (http://goo.gl/RYrEr) deneyin. SE Engine'in çalıştığı http: // weblogs.asp.net/scottgu/archive/2006/04/09/App_5F00_Offline.htm ve çalışma-etrafında-_2200_IE-Friendly-Errors_2200_-feature.aspx' yazıyor italik koymak için bir çözüm olarak bir kısaltıcı kullandım. – mbx

0

Sen içeriği hizmet etmeyen, web sunucusu düzeyinde özel bir hata sayfası (IIS) veya asp.net durumunda web.config'de belirlenen varsayılan olarak

+2

\

HKEY_LOCAL_MACHINE \ SOFTWARE ben katılmıyorum. Durumu bilmediğinizde genel olarak böyle konuşma. URL'nin çalışma zamanında oluşturulduğu yönlendirme durumlarında ve Hata sayfanız aslında sanal olduğunda, nerede olduğunu bilmediğinizde IIS'de bir şey ayarlayamazsınız. Ve bir şey daha, IIS hata sayfası ile 404 hataya yanıt vermek için 404 durum kodu altında hizmet etmeyecektir. Ve cevabınız, sorduğum şeyle tamamen alakasız! –

İlgili konular