2011-10-04 23 views
5

Merhaba Yanıt 404 ise bir yönlendirme yapmaya çalışıyorum ama beklendiği gibi çalışmıyor, uzmanlar sorunu görebiliyor musunuz ?. Hala GÜNCELLEME404 Özel Yönlendirme

protected void Application_BeginRequest(Object sender, EventArgs e) 
{ 
     if (Response.Status == "404 Not Found") 
     { 
      string notFound = "~/custom_notfound.aspx"; 
      Response.Redirect(notFound); 
     } 

} 

benim Global.asax jenerik 404

gider

şimdiye kadar çalıştı

(Response.Status == "404 Not Found") 
(Response.Status == "404") 
(Response.StatusCode == 404) 
+0

Eğer 'Response.Redirect (NOTFOUND) koymak kastettiniz web.config kullanabilirsiniz;'? – Icarus

+0

PageNotFound nedir? –

+0

ahh üzgün yazım hatası gönderirken yine de sorun var. – user710502

cevap

8

Ayrıca web.config kullanabilirsiniz bölüm customerrors - as shown here

örn. system.web bölümünde,

<customErrors mode="On" defaultRedirect="/custom_error.aspx"> 
    <error statusCode="404" redirect="/custom_notfound.aspx" /> 
</customErrors> 
2

Bu yönlendirmesi yapmasına web.config eklemek olabilir, bunu işlemek için Application_BeginRequest kullanmak gerekmez.

Bkz. Bu ServerFault question.

Web.config dosyasını kullanamıyorsanız, başlangıç ​​sayfanızı mevcut olmayan bir tanesine ayarlıyorum, BeginRequest'inize bir kesme noktası koy, uygulamayı hata ayıkla ve nasıl belirlendiğini görmek için isteğe baktım 404'tür. En uygun çözümü belirlemek çok daha kolay olurdu.

Buna biraz daha baktığımızda, HttpWebResponse sınıfında kullanılan HttpStatusCode var. Bu nedenle, varsayılan yanıtı almak için Uygulamanın farklı bir geçersiz kılma kullanması mantıklı olabilir ve ardından Enum'a karşı durumunu kontrol edin.

+0

Her halükarda, bir sebepten dolayı asax'da yapılmasını isterler, ki orada bunu yapmanın yolu ne olurdu? – user710502

3

BeginRequest'in 404 hatası hakkında bildiklerini sanmıyorum. Bunun yerine Application_Error uygulamasını deneyin. Server.GetLastError() bir HttpException olup olmadığını kontrol edin ve eğer öyleyse durumu kontrol edin.

0

Ayrıca

<system.webServer> 
    <httpErrors errorMode="Custom" defaultResponseMode="File" > 
    <remove statusCode="404" /> 
    <remove statusCode="500" /> 
    <error statusCode="404" path="404.html" /> 
    <error statusCode="500" path="500.html" /> 
    </httpErrors> 
</system.webServer> 
İlgili konular