2011-02-24 23 views
5

द्वारा लौटाए गए 404 के लिए कस्टम एरर का नोटिस नहीं ले रहा है। मैं अपने एमवीसी 3 ऐप (हाल ही में 2 से अपडेट किया गया) आईआईएस 7.5 (विन 7 64 बिट) पर एक .NET 4.0 एकीकृत पाइपलाइन ऐप पूल के साथ चला रहा हूं और web.config में निम्नलिखित सेट-अप:आईआईएस 7.5 एमवीसी 3 ऐप

<customErrors mode="On" defaultRedirect="~/Problem/Oops" redirectMode="ResponseRedirect"> 
    <error statusCode="404" redirect="~/Problem/NotFound" /> 
</customErrors> 

एक नियंत्रक पर कोई क्रिया विधि एक अपवाद सर्वर फेंकता है और इसलिए एक 500 ERRORCODE इसे सही ढंग से डिफ़ॉल्ट रीडायरेक्ट URL को ब्राउज़र भेजता है उत्पन्न करता है।

हालांकि अगर मेरी कार्रवाई जानबूझकर HttpNotFoundResult को HttpNotFound() के माध्यम से लौटाती है तो मुझे आईआईएस 7.5 404.0 त्रुटि पृष्ठ मिलता है और मेरे वेब.कॉन्फिग में संकेत नहीं दिया गया है।

यदि मैं एक यूआरएल दर्ज करता हूं जो http://localhost/MyApp/FOO जैसे मेरे ऐप पर मौजूद नहीं है तो मुझे वेब.config द्वारा इंगित पृष्ठ दिखाया गया है।

किसी के पास कोई विचार है कि क्यों मैं HttpNotFound() का उपयोग करते समय अपने कस्टम 404 त्रुटि पृष्ठ पर रीडायरेक्ट नहीं कर रहा हूं?

उत्तर

6

बजाय बुला HttpNotFound की वाक्य रचना नीचे कोशिश करते हैं और मुझे परिणाम से अवगत कराएं;)

throw new HttpException(404, "NotFound"); 
+0

मैं पुष्टि कर सकता हूं कि यह मेरे लिए काम करता है। – Thomas

0

क्या आपने Response.TrySkipIisCustomErrors = true; सेट करने का प्रयास किया है?

(http://blog.janjonas.net/2011-04-13/asp_net-prevent-iis_75_overriding-custom-error-page-iis-default-error-page देखें)

+0

ऊह होनहार लग रहा है। मुझे इसे एक मौका और देना होगा। – Peter

+0

दुर्भाग्य से यह मेरे लिए काम नहीं किया। मेरे ProblemsController में कोड कभी छुआ नहीं जाता है। आईआईएस सेटिंग्स को अनदेखा कर रहा है या मैं MVC3 HttpNotFound() विधि के उपयोग की गलत व्याख्या कर रहा हूं। – Peter

+0

इस उत्तर को स्वीकार करते हुए यह सबसे सहायक था और दूसरों के लिए काम कर सकता है भले ही यह मेरे लिए काम न करे। – Peter

संबंधित मुद्दे