2015-07-05 13 views
7

पर काम नहीं कर रहा है मैंने हाल ही में मेजबान स्थानांतरित कर दिया है और आईआईएस में फिर से ग्राहक त्रुटियों को स्थापित करना पड़ा है।कस्टम 404 त्रुटि पृष्ठ आईआईएस 8.5

मैं आईआईएस व्यवस्थापक क्लिक करें और इस प्रकार त्रुटि पृष्ठों पर कर सकते हैं:

Custom Errors on IIS

तो मैं कस्टम त्रुटियाँ पर जा सकते हैं, और इस प्रकार के विकल्प की स्थापना की है:

Customer Errors setup

यह मेरी web.config फ़ाइल को निम्नानुसार बनाता है:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="ExecuteURL"> 
      <remove statusCode="500" subStatusCode="100" /> 
      <remove statusCode="500" subStatusCode="-1" /> 
      <remove statusCode="404" subStatusCode="-1" /> 
      <error statusCode="404" prefixLanguageFilePath="" path="/error_404.asp" responseMode="ExecuteURL" /> 
      <error statusCode="500" prefixLanguageFilePath="" path="/error_500.asp" responseMode="ExecuteURL" /> 
      <error statusCode="500" subStatusCode="100" path="/error_500.asp" responseMode="ExecuteURL" /> 
     </httpErrors> 
    </system.webServer> 
</configuration> 

जब मैं पृष्ठों का परीक्षण करता हूं, 505 त्रुटि ठीक काम करती है, और सही पृष्ठ पर रीडायरेक्ट करती है, लेकिन 404 रीडायरेक्ट नहीं करता है और मानक आईआईएस 404 त्रुटि देता है। मैंने पुष्टि की है कि सही स्थान पर सर्वर पर 404 त्रुटि पृष्ठ मौजूद है।

मैं नहीं देख सकता कि मुझे और क्या करना है। का उपयोग करते हुए:

+0

समाधान को उत्तर के रूप में पोस्ट करने पर विचार करें और इसे स्वीकार करें।अन्यथा भविष्य में किसी भी उत्तर के बिना एक प्रश्न हटा दिया जा सकता है। –

+0

सलाह के लिए धन्यवाद - किया। – 4532066

उत्तर

6

यह अंत में काम कर (http://forums.iis.net/t/1173965.aspx इस का पता लगाकर मदद की): समझे

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <httpErrors errorMode="Custom" defaultResponseMode="ExecuteURL"> 
      <remove statusCode="500" subStatusCode="100" /> 
      <remove statusCode="500" subStatusCode="-1" /> 
      <remove statusCode="404" subStatusCode="-1" /> 
      <error statusCode="404" path="/error_404.asp" responseMode="ExecuteURL" /> 
      <error statusCode="500" prefixLanguageFilePath="" path="/error_500.asp" responseMode="ExecuteURL" /> 
      <error statusCode="500" subStatusCode="100" path="/error_500.asp" responseMode="ExecuteURL" /> 
     </httpErrors> 
    </system.webServer> 
</configuration> 
2

मैं एक ऐसी ही समस्या है जहाँ मैं पर/त्रुटि/गुम एक कस्टम 404 पृष्ठ है हो रही थी लेकिन यह 'नहीं था टी स्थिर फाइलों के लिए दिख रहा है जो अस्तित्व में नहीं थे या फ़ोल्डर्स/निर्देशिकाओं के लिए जो मौजूद हैं (लेकिन एमवीसी द्वारा नहीं किया जाना चाहिए)।

return HttpNotFound(); 

मैं करने के लिए आईआईएस डिफ़ॉल्ट त्रुटियों को बदल सकता है:

Response.AddHeader("Content-Type","text/html; charset=utf-8"); 
    Response.TrySkipIisCustomErrors = true; 
    Response.StatusCode = (int)HttpStatusCode.NotFound; // 404 

इसके अलावा मैं अपने कस्टम त्रुटि पृष्ठ अगर मैं एक नियंत्रक में निम्नलिखित वापस नहीं हो रही थी: लापता पेज के लिए नियंत्रक निम्नलिखित है अगर मैं पासथ्रू सेट एक रिक्त पृष्ठ:

<httpErrors existingResponse="PassThrough" /> 

यह बदल रहा है "बदलें" करने के लिए डिफ़ॉल्ट की गई त्रुटियों को फिर से दिखाने IIS।

मेरे पास मेरे web.config में भी एक अनुभाग था, लेकिन मैंने इसे बाहर निकाला है क्योंकि मैं आईआईएस 8.5 हूं, ऐसा लगता है कि इसकी आवश्यकता नहीं है।

<system.web> 
    <customErrors mode="Off"> 
</system.web> 

तो मूल रूप से मैं डिफ़ॉल्ट आईआईएस संदेशों से छुटकारा नहीं पा रहा था - या तो एक-लाइनर या अधिक विस्तृत वाले। मेरे httpErrors अनुभाग इस तरह देखा:

<httpErrors errorMode="Custom" defaultResponseMode="ExecuteURL"> 
    <remove statusCode="404" /> 
    <error statusCode="404" path="/Error/Missing" /> 
</httpErrors> 

अंत में मैं इस सवाल में आए और मैं इस सवाल पर अन्य जवाब देख रहा था और महसूस किया कि मैं प्रत्येक त्रुटि लाइन पर एक ResponseMode की कोशिश कर सकते। मैंने सोचा कि यह आवश्यक नहीं होगा क्योंकि मेरे पास डिफ़ॉल्ट रीस्पॉन्समोड सेट था - लेकिन इससे कोई फर्क पड़ता है !!

तो, अगर आप इस httpErrors मॉड्यूल एक कस्टम 404 पृष्ठ उपयोग सेवा करना चाहते हैं:

<httpErrors errorMode="Custom"> 
    <remove statusCode="404" /> 
    <error statusCode="404" path="/Error/Missing" responseMode="ExecuteURL" /> 
</httpErrors> 

मैं इन सब जानकारी यहां रख दिया है तो यह उम्मीद है कि ऊपर किसी और ही बातें मैंने किया खोज के लिए पता चलता - आशा करता हूँ की ये काम करेगा!

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