2008-09-30 24 views
9

Özel bir 404 sayfalı bir ASP.NET 2.0 web sitem var. İçerik bulunamadığı zaman site, sorgu dizgisi aspxerrorpath =/mauro.aspx eklenerek özel 404 sayfasına hizmet verir. 404 sayfa kendisi ben Google widget'ı ekledi ve onunla iki sorunlar var Google 404 ve .NET Özel Hata Sayfaları

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

ekledik bu sorunu çözmek için denemek için 200 bir HTTP durumu ile servis edilir. Internet Explorer 7'da olması gereken yerde görüntülenmez. Bunu içeriğe eklerseniz, 79 satırında 226 veya o sırada bir "bilinmeyen hata" alıyorum; Başlığa eklediğimde, arama kutuları içeriğin üzerinde görünür. Firefox'ta iyi çalışıyor.

Yani benim sorunlar şunlardır:

  1. nasıl satır içinde görünmesine ben widget'ı yapabilirim?
  2. nasıl hata sayfası orijinal adı ve varlık dosyanın yolu ile birlikte 404 olarak görüntülenmesini sağlarım ben mauro.aspx istediğinde ben 404 sayfa için içeriği almak, ama o kadar talep mauro.aspx URL adresi (Ben begin_request Global.asax dosyasında bazı URL rewriting yapmak zorunda varsaymak, ama Aptalca bir şey yapmak önce bu teyit ediyorum.)

cevap

1

Bunu yaparak 404 hallettikten herkes google widget'la bana yardımcı olabilir

protected void Application_BeginRequest(object sender, EventArgs e) 
{ 
    string url = Request.RawUrl; 
    if ((url.Contains(".aspx")) && (!System.IO.File.Exists(Server.MapPath(url)))) 
    { 
     Server.Transfer("/Error/FileNotFound.aspx"); 
    } 
} 

Şimdi global.asax dosyasında, büyük olurdu!

+3

bu, performans kritik kontrol ediyoruz edilir. –

+0

Doğru, Ben bir sözlük veya daha hızlı bir şekilde kontrol etmek için kullanmak için benzer bir sonuç saklayabilirsiniz ... – Mauro

10

Artık kullanamayacağınız ASP.NET 3.5 SP1'de yeni bir yönlendirme modu var. Hata sayfasını gösterir, ancak URL'yi aynı tutar:

"URL yönlendirmeleri için de iyi. Eğer web.config dosyasında redirectMode öğesini" responseRewrite "olarak ayarlarsanız, özel bir hata sayfasına yönlendirme yapıp tarayıcıdaki URL'ye dokunulmamış. " dosyası, her istek üzerine her zaman var olmadığını

+0

Bu örnekte .Net 2.0 kullanıyoruz, ancak .net 3.5 sp1 bilgisini akılda tutacağım. – Mauro

+0

Gerçekten çok üzgünüm, okumanın sonunu aldığım zamana kadar mesajın 2.0 bölümünü unutmuş olmalıyım. Benim hatam. – mattlant

+0

Sorun değil, bunu kullanmak için hala bir argüman olarak kullanabilirsiniz 3,5 hala gelmek :) – Mauro

İlgili konular