2012-11-06 19 views
17

मेरे पास Web.Config के साथ एक बड़ी और महत्वपूर्ण समस्या है, मुझे अपने पृष्ठ की त्रुटि देखने और इसे एएसपीनेट वेब फॉर्म और वेब कॉन्फ़िगरेशन में हल करने की आवश्यकता है, लेकिन जब त्रुटि हुई, तो मैं अन्य त्रुटि दिखाई देती है और मैं इस संदेश को देखने के: बंद करने के लिए या या RemoteOnly परWeb.config कस्टम त्रुटियां मोड संघर्ष

customErrors मोड,

मैं इस संपत्ति बंद सेट है, लेकिन त्रुटि नहीं दिखा और कहते हैं कि फिर से चालू करने के लिए विशेषता सेट करें अपने CustomError।

enter image description here

enter image description here

जब मैं पर करने के लिए मोड सेट, कहते हैं कृपया पर करने के लिए customErrors मोड सेट फिर से।

enter image description here

enter image description here

+0

कस्टम त्रुटि का अर्थ यह है कि आप त्रुटि के लिए अपना स्वयं का पृष्ठ बना रहे हैं। 404 फ़ाइल की तरह नहीं मिला आदि। जब आप इसे बंद करते हैं तो यह हर किसी को त्रुटि दिखाता है। और यदि यह केवल उसी मशीन से रिमोट है तो केवल –

+1

त्रुटि देखी जा सकती है क्या आप अपनी त्रुटि फेंक रहे हैं। या आपने अपनी वैश्विक फ़ाइल Application_Error विधि में कुछ लिखा है? –

+0

टिप्पणी के लिए धन्यवाद, मुझे पता है, लेकिन मैं इसे डीबग करने के लिए त्रुटि देखना चाहता हूं, और त्रुटि –

उत्तर

13

आप विन्यास के साथ मुद्दों कर रहे हैं, सुनिश्चित करें कि आपके सेटिंग को ओवरराइड नहीं कर रहा है।

इस मामले में, अपने सर्वर एक विन्यास <deployment retail="true" /> कि आवेदन सेटिंग पर वरीयता और ट्रेस उत्पादन, कस्टम त्रुटियों, और डिबग क्षमताओं को निष्क्रिय हो सकता है।

बदलें मूल्य "गलत"

<deployment retail="false" /> 

MSDN Link

-1

सेट पर करने के लिए मोड, बचाने web.config तो ताज़ा या आईआईएस पुनरारंभ करें और सुनिश्चित करें कि मोड अभी भी चालू पर सेट है के बाद बचा लिया हो। यह करने के लिए फिर से इस तरह से अपनी <system.web> टैग के अंदर कहीं न कहीं से ब्राउज़ करें, यह त्रुटि दिखाना चाहिए ...

+0

दुर्भाग्यवश, यह सही ढंग से काम नहीं करता –

+3

ऑन कभी त्रुटि नहीं दिखाएगा। केवल 'ऑफ' – Kenneth

3

सुनिश्चित करें कि आप घोंसला बनाने customErrors टैग:

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

अपने विवरण से यह पहले से ही है संभावना यह द्वारा वहाँ रखा गया था आप या स्वचालित रूप से एक और तरीका उत्पन्न किया। इसे चालू करने और एप्लिकेशन पूल को पुनरारंभ करने का भी प्रयास करें। आप ब्रेक रिटर्न जोड़कर web.config फ़ाइल को बस संशोधित करके या फिर भी स्पेस कुंजी दबाकर इसे कर सकते हैं, जब तक आप कोई परिवर्तन कर चुके हों। अब यह सुनिश्चित करने के लिए फिर से अपलोड करें कि कस्टमरर मोड के साथ यह आपका दूसरा समय चालू है। उम्मीद है कि अब आप अपना कस्टम त्रुटि पृष्ठ देख सकते हैं।

यदि आपको अभी भी समस्याएं हैं, और आईआईएस प्रबंधक से आपकी वेबसाइट तक पहुंच है तो सुविधाओं के दृश्य में .NET त्रुटि पेजों को संपादित करने का प्रयास करें। यह वही काम भी करेगा, जो आपके कस्टम त्रुटि पृष्ठ को web.config फ़ाइल तक पहुंचने के लिए सही निर्देशिका में प्रदान करता है।

+0

दुर्भाग्यवश यह काम नहीं कर रहा था –

1

मैं बस यहाँ टिप्पणी करने के लिए चाहता था, लेकिन मैं टिप्पणी करने के लिए पर्याप्त बिंदु की जरूरत नहीं है, हम वास्तविक, पेज देख सकते हैं कि त्रुटि उत्पन्न करता है और पूरे web.config देखें? आप कनेक्शनस्ट्रिंग को धुंधला कर सकते हैं और ऐसा इसलिए कि कोई पासवर्ड न दें।

लेकिन साथ मैं क्या देखते हैं,

मैं तुम क्या कह रहे आप स्थानीय मशीन पर आईआईएस एक्सप्रेस डिबगिंग उपयोग कर रहे हैं से लगता है। मैं आईआईएस एक्सप्रेस, या ctrl + F5 पृष्ठ को यह देखने के लिए करता हूं कि साइट कैश नहीं है या नहीं।

बंद करने के लिए कस्टम त्रुटियों आप डिबग संदेश दिखाई देगा की स्थापना - नोट "ओ" बंद में च के के निचले मामले से पूंजीकृत किया जाना चाहिए। लगता है कि आप इस किया है, लेकिन उल्लेख के लायक

कस्टम त्रुटियाँ बंद - निर्दिष्ट करता है कि कस्टम त्रुटियों अक्षम हैं। यह विस्तृत त्रुटियों के प्रदर्शन की अनुमति देता है।

1

मैंने इसे कभी भी सेट पर नहीं देखा है। मैंने इसे देखा है कि सेट customeErrors बंद करने के लिए जो आपको विस्तृत त्रुटियां देगा। इसे बंद करें और फिर इस पोस्ट में दिखाई देने वाले वास्तविक त्रुटि संदेश को जोड़ें। क्या आप सकारात्मक हैं कि 404 त्रुटि जैसे अलग संदेश नहीं मिल रहे हैं?

3

डिबगिंग के लिए त्रुटि दिखाने के लिए और नहीं एक कस्टम त्रुटि पेज दिखा करने के लिए आप की जरूरत नहीं है एक defaultRedirect और बस इस तो उत्पादन डिबग/अपवाद जानकारी चाहिए हो रही:

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

नोट: सुनिश्चित करें साथ कि On शुरू होता है एक ऊपरी मामला । Web.config को बदलकर इसे (डिफ़ॉल्ट रूप से) अपने ऐप पूल को रीसायकल करना चाहिए और सीधे उठाया जाना चाहिए।

3

यहाँ नमूना कोड कैसे आप कस्टम पृष्ठ पर अपवाद प्रदर्शित कर सकते हैं है।

पहले बटन के साथ Default.aspx बनाएँ:

बटन क्लिक करें घटना के लिए निम्न कोड
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Throw Error" /> 

जोड़ें:

protected void Button1_Click(object sender, EventArgs e) 
    { 
     throw new Exception("Sample Exception on my Page"); 
    } 

दूसरा लेबल के साथ ErrorPage.aspx बनाएँ:

<asp:Label ID="Label1" runat="server" Text=""></asp:Label> 

और त्रुटि पृष्ठ के लिए कोड:

protected void Page_Load(object sender, EventArgs e) 
    { 
     Exception ex = Server.GetLastError(); 
     if (ex != null && ex.InnerException != null) 
     { 
      Label1.Text = string.Format("An error occured: {0}", ex.InnerException.Message); 
     } 
    } 

और अंत में web.config में निम्नलिखित विन्यास जगह:

<system.web> 
     <customErrors mode="On" defaultRedirect="~/ErrorPage.aspx" redirectMode="ResponseRewrite" /> 
    </system.web> 

संकलित करें और Default.aspx के साथ शुरू करते हैं। अपने बटन पर क्लिक करें और त्रुटि आपके कस्टम पेज पर दिखाई जाएगी।

मुबारक कोडिंग!

1

जो मैं देख सकता हूं, आपके पास <customErrors mode="Off" /><system.web> नोड में पहले नोड के रूप में नहीं है।

तो मुझे लगता है कि करने के लिए थे, तो आप एक <compilation targetFramework="x.x"> नोड के अंदर customErrors नोड है।

आप शायद है applicationpool नेट ढांचे से आवेदन में लिखा है का एक और संस्करण के लिए निर्धारित किया है। तो यह सबसे अधिक संभावना है आप विस्तृत त्रुटिसंदेश दे देंगे यकीन <customErrors mode="Off" /> नोड <system.web> नोड के अंदर पहले है,।

1

इस लाइन को हटाने के लिए मेरे लिए काम करता है!

<customError /> 
+0

दुर्भाग्यवश, यह सही ढंग से काम नहीं करता है –

1

कई होस्टिंग कंपनियां वास्तव में आपके वेब.कॉन्फिग फ़ाइल से सेटिंग्स को ओवरराइड करती हैं। आप आमतौर पर वेबसाइट के लिए वेब होस्ट के डैशबोर्ड में इन ठोस विशेषताओं को सेट कर सकते हैं।

यदि आप हमें कंक्रीट वेब होस्टिंग का उपयोग कर रहे हैं, तो हम ठोस कदमों के साथ बेहतर सहायता करने में सक्षम होना चाहिए।

4

सबसे पहले, आप के लिए "बंद" <customErrors mode="Off"></customErrors>

दूसरा "RemoteOnly" से customErrors मोड सेट कर सकते हैं, आप global.asax.maybe आप customError में defaultRedirect रूप में एक ही रूप में Response.Redirect बनाने देख सकते हैं। आप यहां ASP.NET customErrors with mode=remoteOnly and global.asax handling exceptions

और आखिरी, शायद आप अपने वेब कॉन्फ़िगर में दो system.web बना सकते हैं। आपके पास केवल अपनी कॉन्फ़िगरेशन फ़ाइल में से एक होना चाहिए। कृपया अपना वेब कॉन्फिगर फिर से जांचें। और <compilation debug="true"/>

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