2010-08-24 16 views
8

İyi günler! İstisna 404 olup olmadığını özel kontrolör \ eylemi işlemek, herhangi yönlendirme kurallarını eklemeden ben Global.asax yılında istisna olarak 404 işlemek: Error handling for ASP.NET MVC 2 and IIS 7.0 veya bu: Kısacası How can I properly handle 404 in ASP.NET MVC?ASP.NET MVC 404 kullanımı ve IIS7 <httpErrors>

böyle 404 hataları işlemek için stratejiyi kullanmak hata mesajı ile.

IIS6'da ASP.NET joker eşleme ile çalışır. Entegre modunda IIS7 ben şunları eklemem gerekiyor Web.config (/error/HttpError404 404 sayfa ile benim eylem olduğu):

<httpErrors> 
     <remove statusCode="403" subStatusCode="-1" /> 
     <remove statusCode="404" subStatusCode="-1" /> 
     <error statusCode="404" prefixLanguageFilePath="" path="/error/HttpError404" responseMode="ExecuteURL" /> 
     <error statusCode="403" prefixLanguageFilePath="" path="/error/HttpError403" responseMode="ExecuteURL" /> 
    </httpErrors> 

Neden? Yönlendirme, IIS tümleşik modu ve IIS6 joker eşleme üzerinde farklı çalışır?

Şimdiden teşekkürler!

GÜNCELLEME: benim testlere göre işler ve benim 404 eylem taşıma benim hata uygulanamaz hale geldiği görünüyor, ama IIS 404 yanıt kodu görür gibi görünüyor (benim 404 eylem programlı set olan) ve sayfamı yerine varsayılan hatalarla.

<httpErrors>'u ayarladığımda 404 sayfası için iki isabet aldım: biri, Global.asax ve IIS'den bir istisna işleme.

Bu neden olabilir mi?

cevap

11

Ben Web.config yılında ayarlayarak sabit o görünüyor:

<httpErrors existingResponse="PassThrough" /> 
+0

aylarca aynı sorunu yaşadım ve bu benim için çalıştı. Güncelleme için teşekkürler! –

+0

Hoş Geldiniz :) – artvolk

+2

Biliyorum biraz geç, ama MVC3 ile benimle çalışmış olan exisitingResponse kullanıyor = "Değiştir" –