2011-11-28 13 views
5

में प्रेजिपरर्स मैं सरल HTML पृष्ठ का उपयोग करने की कोशिश कर रहा हूं जब 503 सेवा अनावश्यक त्रुटि आती है।वेब.कॉन्फिग

मैं web.config के system.webservers

<httpErrors errorMode="Custom"> 
    <remove statuscode="503" substatuscode="-1"> 
    <error statuscode="503" responseMode="File" path="Views/Shared/IISError.htm"> 
</httpErrors> 

यह NT काम कर रहा है में नीचे का उपयोग कर रहा हूँ। जब भी मैं अपना आवेदन बंद करता हूं तब भी मुझे आईआईएस डिफ़ॉल्ट पृष्ठ मिल रहा है।

मैं एमवीसी 3, रेज़र एप्लिकेशन का उपयोग कर रहा हूं।

+1

कोशिश '' –

उत्तर

2

सवाल यह है कि, क्या आप विजुअलस्टूडियो डेवलपमेंट सर्वर या आईआईएस 7 एक्सप्रेस का उपयोग कर रहे हैं?

अगर आप कैसिनी (VSDS) का उपयोग कर रहे है तो आप

<customErrors mode="On" > 
    <error statusCode="503" redirect="/Views/Shared/Error.htm"/> 
</customErrors> 

साथ प्रयास करना चाहिए क्योंकि httpErrors एक नई संरचना है कि केवल IIS7 द्वारा नियंत्रित किया जाता है। आप पर कुछ और जानकारी मिल सकती: What is the difference between customErrors and httpErrors? और http://www.iis.net/ConfigReference/system.webServer/httpErrors

+0

मैं IIS 7.0 –

+0

उपयोग कर रहा हूँ आप 503 फेंकने के लिए IIS कैसे हो रही है ? यदि आप इसे एप्लिकेशन के माध्यम से कर रहे हैं तो यह Asp.Net हैंडलर के माध्यम से जाएगा। httpErrors निर्देश सामग्री के लिए है जो Asp.Net – torm

+0

से नहीं जाता है IIS में अपना ऐप पूल रोक रहा हूं। यह मुझे मेरे पृष्ठ के बजाय डिफ़ॉल्ट 503 पेज दिखाता है। –

7

यह मुझे कुछ समय लिया इस यह पता लगाने की ... लेकिन मुझे लगता है कि यह आपकी मदद कर सकता है:

सबसे पहले आईआईएस 7 आप में त्रुटियों को कॉन्फ़िगर करने यह निम्न अनुभाग का उपयोग कर कार्य करना होगा:

<system.webServer> 
    <httpErrors existingResponse="Replace" defaultResponseMode="Redirect" errorMode="Custom"> 
     <remove statusCode="503"/> 
     <error statusCode="503" responseMode="Redirect" path="Views/Shared/IISError.htm"/>   
    </httpErrors> 
    </system.webServer> 

यह विन्यास काम करता है, फिर भी आप यह दर्शाता है कि आप httpErrors खंड ओवरराइड नहीं कर सकते, यदि ऐसा है, अगले चरणों का पालन कोई त्रुटि प्राप्त हो सकता है:

  1. ओपन C:\Windows\System32\inetsrv\config\applicationHost.config

  2. बदलें:

    <section name="httpErrors" overrideModeDefault="Deny" /> 
    

    करने के लिए:

    <section name="httpErrors" overrideModeDefault="Allow" /> 
    
1

अपनी टिप्पणी में से एक के आधार पर ऐसा लगता है जैसे कि आप अपने अनुप्रयोग पूल रोक रहे हैं ।

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

1

एमवीसी 5.1.1 और आईआईएस 7.5 में, फ़ाइल प्रतिक्रिया मोड के लिए सबफ़ोल्डर को इंगित करने के लिए बैकस्लाश की आवश्यकता होती है।

सी #:

[HttpGet] 
[AllowAnonymous] 
public ActionResult Login() 
{ 
    try 
    { 
     var allowLogin = false; 

     if(allowLogin == false) 
      return new HttpStatusCodeResult(403); 
    } 
} 

Web.config:

<system.web> 
    <!--customErrors tag is not required --> 
</system.web> 
<httpErrors errorMode="Custom" existingResponse="Replace" defaultResponseMode="File" > 
    <remove statusCode="400" subStatusCode="-1" /> 
    <remove statusCode="401" subStatusCode="-1" /> 
    <remove statusCode="403" subStatusCode="6" /> 
    <remove statusCode="403" subStatusCode="-1" /> 
    <remove statusCode="503" subStatusCode="-1" /> 
    <remove statusCode="500" subStatusCode="-1" /> 
    <clear/> 
    <error statusCode="400" subStatusCode="-1" path="ErrorPages\400.html" /> 
    <error statusCode="401" subStatusCode="-1" path="ErrorPages\401.html" /> 
    <error statusCode="403" subStatusCode="6" path="ErrorPages\Restrict.html" /> 
    <error statusCode="403" subStatusCode="-1" path="ErrorPages\403.html" /> 
    <error statusCode="503" subStatusCode="-1" path="ErrorPages\503.html" /> 
    <error statusCode="500" subStatusCode="-1" path="ErrorPages\500.html" /> 
</httpErrors> 
संबंधित मुद्दे