CustomErrors मोड = "बंद"


254

मुझे हर बार एक त्रुटि मिलती है जो मैं प्रदाता को अपना वेबएप अपलोड करता हूं। CustomErrors मोड के कारण, मैं जो कुछ भी देखता हूं वह डिफ़ॉल्ट "रनटाइम त्रुटि" संदेश है, मुझे त्रुटि के बारे में अधिक देखने के लिए customErrors को बंद करने का निर्देश देता है।

इस तरह दिखने के लिए, मैंने अपना web.config सेट किया है:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

और फिर भी, मुझे जो भी मिलता है वह है बेवकूफ रिमोट एरर पेज, जिस पर कोई उपयोगी जानकारी नहीं है। मैं CustomErrors OFF को चालू करने के लिए और क्या कर सकता हूँ?


1
ऐड की कोशिश @Model.Exception.Messageकरने के लिएShared/Error.cshtml
Muflix

सामान्य तौर पर, कॉन्फिगर ट्रांसफ़ॉर्म्स के लिए वॉच आउट (उदाहरण के लिए Web.Debug.config जो उस मान को बदल सकता है), और फ़ाइल में उस सेक्शन / प्रॉपर्टी की डुप्लिकेट परिभाषाओं को देखें (स्पष्ट रूप से इस मामले में समस्या नहीं थी)
ग्राहम

जवाबों:


164

यह पिछले कुछ दिनों से मुझे पागल कर रहा है और इसके आसपास नहीं पहुंच सकता है लेकिन आखिरकार इसका पता लगा लिया है:

मेरी मशीन में। फाइल फ़ाइल के नीचे मेरी प्रविष्टि थी <system.web>:

<deployment retail="true" />

यह किसी भी अन्य कस्टम सेटिंग्स को ओवरराइड करने के लिए लगता है जो आपने एक web.config फ़ाइल में निर्दिष्ट किया है, इसलिए उपरोक्त प्रविष्टि को निम्न पर सेट करें:

<deployment retail="false" />

अब इसका मतलब है कि मैं एक बार फिर से विस्तृत त्रुटि संदेश देख सकता हूं जो मुझे करने की आवश्यकता है।

machine.configमें स्थित है

32-बिट

%windir%\Microsoft.NET\Framework\[version]\config\machine.config

64-बिट

%windir%\Microsoft.NET\Framework64\[version]\config\machine.config 

आशा है कि वहाँ किसी को मदद करता है और बाल खींच के कुछ घंटे बचाता है।


अच्छी बात। रिटेल मोड को फिर से चालू करने के लिए सबसे अच्छा है जब आप समाप्त हो गए हों (या web.config में डिबग मोड को बंद कर दें, जो आपकी विकास मशीन पर गुस्सा होगा)। Weblogs.asp.net/lasse/archive/2009/04/28/…
स्टीफन कैनेडी

यह .NET 4.0 में एक डिफ़ॉल्ट सेटिंग प्रतीत होता है - मुझे यह पता लगाने में एक ही परेशानी थी। सहमत हूं कि उत्पादन परिवेश में उपयोग करने के लिए यह एक अच्छी सेटिंग है, लेकिन डीबग करते समय वास्तविक त्रुटि को देखना बहुत महत्वपूर्ण है।
जेरेमी

न सिर्फ मेरा समय बचा, बल्कि मेरी जान भी बच गई। ठीक यही मेरे लिए काम कर रहा था
Pouya Samie

142

"ऑफ" केस-संवेदी है।

जांचें कि क्या "O" आपके वेब.कॉन्फ़िग फ़ाइल में अपरकेस में है, मैंने देखा है कि कुछ समय (जैसा कि सरल लगता है)


49

इस सवाल में और अधिक स्थितियों को जोड़ने के हितों में (क्योंकि यही वह जगह है जहाँ मैंने देखा क्योंकि मुझे वही समस्या थी), यहाँ मेरा जवाब है:

मेरे मामले में, मैंने जेनेरिक त्रुटि से पाठ को कट / पेस्ट कर दिया है, यदि आप यह देखना चाहते हैं कि क्या गलत है, तो डाल दें

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

तो यह इसे तय किया जाना चाहिए, लेकिन निश्चित रूप से नहीं! मेरी समस्या यह थी कि एक <system.web> नोड कई लाइनों के ऊपर (एक संकलन और प्रमाणीकरण नोड से पहले) था, और एक समापन टैग </system.web> नीचे कुछ लाइनें। एक बार मैंने इसे ठीक कर दिया, ठीक है, समस्या हल हो गई। मुझे जो करना चाहिए था वह केवल इस पंक्ति को कॉपी / पेस्ट किया गया है:

<customErrors mode="Off"/>

यह स्टेपिड थिंग्स आई कीपिंग डू ओवर ओवर एंड अगेन से है, अध्याय में "कॉपी एंड पेस्ट टू योर वेस्ट टू डिस्ट्रक्शन" शीर्षक है।


प्रश्न: यह उत्तर बताता है कि ASP, web.config और अन्य कॉन्फिग फाइलों को ऊपर से पढ़ता है, अर्थात: टॉप-डाउन। मैंने सोचा था कि कॉन्फ़िगर फ़ाइलों को "एकल उदाहरण" के रूप में पढ़ा जाता है जिसका अर्थ है कि संकलक पहले सटीकता के लिए कॉन्फ़िगर फ़ाइल को पार्स करता है और फिर उसे संकलित करता है, लेकिन यह मक्खी द्वारा लाइन पर इसे संकलित करता प्रतीत होता है। क्या यह सच है?
फैंडैंगो68

@ फर्नांडो 68, इसे बेहतर तरीके से एक अलग प्रश्न के रूप में रखा जा सकता है - टिप्पणियों में एक चर्चा बिल्कुल इष्टतम नहीं है। मैं एक .NET इंजीनियर नहीं हूं, लेकिन स्पष्ट रूप से .NET इसे लाइन द्वारा पंक्तिबद्ध नहीं कर रहा है। यह एक Xml फ़ाइल है, और इसलिए पदानुक्रमित है। लेकिन अगर पदानुक्रम खराब तरीके से बनता है, तो एक्सएमएल पार्सर को पार्स करते समय एक अपवाद फेंक दिया जाएगा। दूसरे शब्दों में, इसे पूरी Xml फाइल को एक संपूर्ण के रूप में लेना है - लेकिन यदि यह खराब Xml से सामना करता है तो यह आवश्यक वस्तु का निर्माण नहीं कर सकता है!
साइबरहेलिस्ट

मैंने पहले ही इसे एक अलग प्रश्न stackoverflow.com/questions/30471043/… के रूप में उठाया है । आपकी प्रतिक्रिया के लिए धन्यवाद, जो प्रभावी रूप से मेरे अन्य पोस्ट में मिले उत्तर हैं। चीयर्स
फैंडैंगो

10

Sharepoint 2010 अनुप्रयोगों के लिए, आपको भी संपादित C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\web.configऔर परिभाषित करना चाहिए<customErrors mode="Off" />


7

मैंने यहां वर्णित अधिकांश सामानों की कोशिश की। मैं VWD और डिफ़ॉल्ट web.config फ़ाइल का उपयोग कर रहा था:

    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
        <error statusCode="403" redirect="NoAccess.htm" />
        <error statusCode="404" redirect="FileNotFound.htm" />
    </customErrors>

मैंने मोड = "रिमोटऑनली" को मोड = "ऑफ" में बदल दिया। फिर भी कोई खुशी नहीं। मैंने तब IIS प्रबंधक, गुण, ASP.Net टैब, संपादन कॉन्फ़िगरेशन का उपयोग किया, फिर CustomeErrors टैब को चुना। यह अभी भी रिमोटली दिखा। मैंने इसे ऑफ़ में बदल दिया और अंत में मैं विस्तृत त्रुटि संदेश देख सकता था।

जब मैंने web.config का निरीक्षण किया तो मैंने देखा कि system.web में दो CustomErrors नोड्स थे; और मैंने अभी देखा है कि दूसरी प्रविष्टि (जिसे मैं बदल रहा था वह एक टिप्पणी के अंदर थी)। इसलिए रिमोट सर्वर पर web.config का निरीक्षण करने के लिए नोटपैड का उपयोग न करने का प्रयास करें।

हालाँकि, यदि आप IIS संपादित कॉन्फ़िगरेशन सामान का उपयोग करते हैं तो यह web.config में त्रुटियों के बारे में शिकायत करेगा। फिर आप उन सभी उत्तरों को खारिज कर सकते हैं जो कहते हैं कि "आपके web.config में XML सिंटैक्स त्रुटि है"


वेब साइट स्तर पर web.config को बदलना मेरे लिए काम करता है। पहले मैंने एप्लिकेशन के web.config फ़ाइल लोड के साथ छेड़छाड़ की थी, असफल रहा। धन्यवाद!
१।

7

एक जवाब जो वास्तव में इसे ठीक करने के लिए काम करता है, मुझे यहां मिला: https://stackoverflow.com/a/18938991/550975

बस इसे अपने में जोड़ें web.config:

<configuration>  
  <system.webServer>  
    <httpErrors existingResponse="PassThrough"/>  
  </system.webServer>  
<configuration>

3
मैंने पाया <httpErrors errorMode="Detailed" />कि मुझे वह सारी जानकारी दी गई थी जिसकी मुझे आवश्यकता थी
एलास्टेयरट्री

6

आप आम तौर पर इवेंट व्यूअर में त्रुटि के बारे में अधिक जानकारी पा सकते हैं, यदि आपके पास इसकी पहुँच है। आपके प्रदाता ने कस्टम त्रुटियों को बिल्कुल भी प्रदर्शित होने से रोका हो सकता है, या तो उनके मशीन में इसे ओवरराइड करके, या रिटेल विशेषता को सही करने के लिए सेट किया जा सकता है ( http://msdn.microsoft.com/en-us/library/ms228298 VS.80) .aspx )।


5

मुझे भी यह समस्या थी, लेकिन अपाचे और mod_mono का उपयोग करते समय। उस स्थिति में किसी और के लिए, आपको नए संस्करण को पढ़ने के लिए बाध्य करने के लिए web.config को बदलने के बाद Apache को पुनरारंभ करना होगा।


5

यदि आप अभी भी उस पृष्ठ को प्राप्त कर रहे हैं, तो संभावना है कि यह Web.Config से पहले हो रहा है

सुनिश्चित करें कि ASP.Net के पास .Net फ्रेमवर्क फ़ोल्डर, IIS मेटाबेस आदि जैसी चीजों की आवश्यकता है, क्या आपके पास यह जाँचने का कोई तरीका है कि ASP.Net सही ढंग से स्थापित है और IIS में सही तरीके से जुड़ा हुआ है?

संपादित करें: ग्रेग की टिप्पणी के बाद यह मुझे समझ में आ गया कि आपने जो पोस्ट किया था वह आपकी पूरी बहुत ही कम वेब थी ।config, क्या इसमें कुछ और है? यदि ऐसा है तो आप पूरे web.config को पोस्ट कर सकते हैं?


जितनी बार मैंने इस समस्या में भाग लिया है, यह web.config में एक त्रुटि के रूप में निकला - निश्चित रूप से इस पर पहले w / ठीक दांतेदार कंघी जाओ।
ग्रेग हर्लमैन

हां, अतिरंजित मैं अपने web.config को इस न्यूनतम सेटिंग्स से आगे निकल गया हूं। फिर भी कोई खुशी नहीं
Radu094

जिस एप्लिकेशन पूल का उपयोग किया जा रहा है उस उपयोगकर्ता के पास उस निर्देशिका के लिए पठन की अनुमति नहीं है जिस पर मेरा ऐप तैनात किया गया था। अभी भी यह पता नहीं लगा सका कि मुझे यह दिखाने के लिए त्रुटि क्यों नहीं मिली कि मुझे बताएं कि समस्या थी।
लैम्बाकॉक

अक्सर यह त्रुटि केवल सिस्टम / सुरक्षा ईवेंट लॉग (IIS 7 तक) में पाई जा सकती है, लेकिन ज्यादातर मामलों में ईवेंट लॉग तक आसानी से पहुंचना परेशानी है।
निक Craver

5

मेरी समस्या यह थी कि मैंने इसे अपने web.config में परिभाषित किया था

<httpErrors errorMode="Custom" existingResponse="Replace">
  <remove statusCode="404" />
  <remove statusCode="500" />
  <error statusCode="404" responseMode="ExecuteURL" path="/Error/NotFound" />
  <error statusCode="500" responseMode="ExecuteURL" path="/Error/Internal" />
</httpErrors>

2
एक <httpErrors errorMode="Detailed"उदाहरण के रूप में मदद करने के लिए एक प्रतिस्थापन
it3xl

2

दरअसल, मेरे वेब ऐप की मेजबानी करते समय मुझे जो पता चला है वह कोड है जिसे आपने अपने स्थानीय मशीन पर विकसित किया है, होस्टिंग कंपनी द्वारा आपको पेश किए जाने की तुलना में उच्च संस्करण है। यदि आपके पास व्यवस्थापक विशेषाधिकार हैं, तो आप वेब होस्टिंग सेटिंग के तहत Microsoft ASP.NET संस्करण समर्थन को बदलने में सक्षम हो सकते हैं


2

हमारे पास यह समस्या थी और यह आईआईएस उपयोगकर्ता के वेब सर्वर पर मशीन के विन्यास तक पहुंच नहीं होने के कारण था।


2

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

हमें यह पता लगाने में थोड़ा समय लगा क्योंकि मैंने फ़ोल्डर स्तर पर अनुमतियों की बार-बार जाँच की, लेकिन फ़ाइल स्तर पर कभी नहीं।


2

मेरे पास एक ही मुद्दा था लेकिन एक अलग तरीके से हल मिला।

-

मैंने जो किया था, मैंने IIS प्रबंधक में अनुप्रयोग पूल के लिए उन्नत सेटिंग्स खोलीं ।

वहाँ मैंने 32-बिट अनुप्रयोगों को True पर सक्षम किया


1

एप्लिकेशन को पुनरारंभ करने का प्रयास करें (इसे हटाने से एक app_offline.htm बना देगा) और यदि आपको अभी भी एक ही त्रुटि संदेश मिलता है, तो सुनिश्चित करें कि आपने केवल web.config, या ऐसा ही कुछ में एक बार customErrors घोषित किया है। Web.config में त्रुटियां आवेदन पर कुछ अजीब प्रभाव डाल सकती हैं।


1
जब भी आप web.config को संशोधित करते हैं, वेबसाइट पुनः आरंभ हो जाती है, कोई app_offline.htm बनाने की आवश्यकता नहीं होती है!
मैट फियर

सच है, मुझे पता नहीं है कि मैंने ऐप को रीसेट करने के लिए app_offline का सुझाव क्यों दिया। :)
एडम विघ

1

क्या आपके web.config में webøå जैसा कोई विशेष चरित्र है? यदि हां, तो सुनिश्चित करें कि एन्कोडिंग utf-8 पर सेट है।


1

क्या यह वेब ऐप किसी वेबसाइट के डायरेक्ट्री ट्री में किसी अन्य ऐप के नीचे सेट है? अन्य सेटिंग्स के लिए किसी भी मूल web.config फ़ाइलों की जाँच करें, यदि कोई हो। इसके अलावा, अपनी निर्देशिका को IIS में एप्लिकेशन निर्देशिका के रूप में सेट करें।


1

यदि आप MVC पूर्वावलोकन 4 का उपयोग कर रहे हैं, तो आप इसका अनुभव कर सकते हैं क्योंकि आप HandleErrorAttribute का उपयोग कर रहे हैं। व्यवहार 5 में बदल गया है ताकि यदि आप कस्टम त्रुटियों को बंद करते हैं तो यह अपवादों को नहीं संभालता है।


1

आप सर्वर मशीन पर ब्राउज़र में वेबसाइट लाने का भी प्रयास कर सकते हैं। मैं ASP.NET विकास का एक बहुत कुछ नहीं करता, लेकिन मुझे याद है कि कस्टम एरर की चीज़ में सुरक्षा उपाय के रूप में सर्वर पर केवल फुल एरर टेक्स्ट प्रदर्शित करने के लिए एक सेटिंग है।


1

मैंने सिर्फ इसी तरह के मुद्दे से निपटा है। मेरे मामले में डिफ़ॉल्ट साइट asp.net संस्करण 1.1 था जबकि मैं 2.0 वेब ऐप शुरू करने की कोशिश कर रहा था। त्रुटि बहुत तुच्छ थी, लेकिन यह तुरंत स्पष्ट नहीं था कि कस्टम त्रुटियों को दूर क्यों नहीं किया जाएगा, और रनटाइम ने कभी भी इवेंट लॉग को नहीं लिखा। स्पष्ट रूप से फिक्स IIS के Asp.Net टैब में संस्करण से मेल खाना था।


हमारा एक ही मुद्दा था। "कनेक्शन" नोड में फ्रेमवर्क 1.1 के तहत त्रुटि हो रही थी, जबकि ऐप 2.0 होना चाहिए था
मोशेब


0

मुझे एक ही समस्या थी, और इसका कारण यह था कि IIS ASP.NET 1.1 चला रहा था, और साइट को .NET 2.0 की आवश्यकता थी।

त्रुटि संदेश ने कुछ नहीं किया लेकिन मुझे कई घंटों के लिए ट्रैक से दूर फेंक दिया।


0

सुनिश्चित करें कि आप system.web के बाद सही जोड़ते हैं

मैंने इसे नोड के अंत की ओर रखा और काम नहीं किया।


0

यदि आप एक कॉन्फ़िगर ट्रांसफ़ॉर्म कर रहे हैं, तो आपको संबंधित web.config फ़ाइल से निम्न पंक्ति को हटाने की आवश्यकता हो सकती है।

<compilation xdt:Transform="RemoveAttributes(debug)" />

0

यहाँ सभी उत्तरों की कोशिश करने के बाद, यह पता चला कि मेरी Application_Errorविधि यह थी:

Server.ClearError();
Response.Redirect("/Home/Error");

इन लाइनों को हटाकर समस्या को ठीक किया गया। (क्लाइंट अभी भी त्रुटि पृष्ठ पर पुनर्निर्देशित हो गया है customErrors="On")।


0

मुझे भी यही समस्या हुई है, और मैं इवेंट व्यूअर एप्लिकेशन लॉग के माध्यम से गया, जहां यह स्पष्ट रूप से उल्लेख है कि यह किस अपवाद के कारण हुआ है। मेरे मामले में अपवाद नीचे था ...

अपवाद जानकारी:

Exception type: HttpException 
Exception message: The target principal name is incorrect.  Cannot generate SSPI context.
at System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app)
at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)
at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)
at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)
at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)

The target principal name is incorrect.  Cannot generate SSPI context.

मैंने एप्लिकेशन पूल में अपना पासवर्ड अपडेट किया है और यह मेरे लिए काम करता है।


0

यह कुछ मामलों में भी संभव है कि web.config को सही ढंग से स्वरूपित नहीं किया गया है। उस स्थिति में आपको काम करने से पहले लाइन से इसके माध्यम से जाना होगा। अक्सर, पुनर्लेखन नियम यहां अपराधी होते हैं।


0

यह वास्तव में अजीब है। मुझे यह त्रुटि मिली और अपने सर्वर को रिबूट करने के बाद यह गायब हो गया।


0

मेरे लिए यह system.web से ऊपर web.config में एक त्रुटि थी।

फ़ाइल ब्लाह मौजूद नहीं था इसलिए यह उस बिंदु पर एक त्रुटि फेंक रहा था। क्योंकि यह अभी तक System.Web सेक्शन में नहीं आया था, फिर भी यह CUstomErrors (On) के लिए सर्वर डिफॉल्ट सेटिंग का उपयोग कर रहा था


(यह पोस्ट प्रश्न का एक गुणवत्ता उत्तर प्रदान करने के लिए प्रतीत नहीं होता है । कृपया या तो अपने उत्तर को संपादित करें और इसमें सुधार करें, या बस इसे प्रश्न के लिए एक टिप्पणी के रूप में पोस्ट करें।)
sɐunıɔ ɐ qɐp
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.