विस्तृत 500 त्रुटि संदेश, एएसपी + आईआईएस 7.5


192

IIS 7.5, 2008rc2, क्लासिक एस्प, 500 त्रुटि संदेश:

पृष्ठ को प्रदर्शित नहीं किया जा सकता क्योंकि आंतरिक सर्वर त्रुटि हुई है।

मुझे यह जानने की आवश्यकता है कि अधिक विस्तृत त्रुटि प्राप्त करने के लिए IIS को कैसे कॉन्फ़िगर किया जाए।
मैंने ASP कॉन्फ़िगरेशन में सभी डीबगिंग विकल्पों को सही करने का प्रयास किया है।
लेकिन वह काम नहीं किया। क्या कोई मेरी मदद कर सकता है?


मैं पाठ फ़ाइल में त्रुटि लॉग करने के लिए अलग-अलग तरीके का उपयोग कर रहा हूं: stackoverflow.com/questions/20475502/… मुख्य अंतर - त्रुटि सूचना पत्र पाठ फ़ाइल में संग्रहीत किया जाएगा
ज़म

जवाबों:


231

मैं उसी समस्या पर आया हूं और एलेक्स के के समान ही तय किया है ।

तो अगर "ब्राउज़र में त्रुटियां भेजें" यह भी काम नहीं कर रहा है:

त्रुटि पृष्ठ -> 500 -> फ़ीचर सेटिंग संपादित करें -> "विस्तृत त्रुटियाँ"

यहां छवि विवरण दर्ज करें

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


9
यदि यह अभी भी काम नहीं कर रहा है, तो अनुकूल http त्रुटि संदेशों को अक्षम करें
टिम पार्ट्रिज

3
यदि आपके पैनल से "त्रुटि पृष्ठ" गायब है, तो सुनिश्चित करें कि सुविधा सक्षम है: Windows सुविधाओं को चालू या बंद करें => WWW सेवाएँ, सामान्य HTTP सुविधाएँ, [x] HTTP त्रुटियां
fiat

1
@fiat "त्रुटि पृष्ठ" सक्षम करने के लिए, मुझे जाना था Turn Windows features on or off > Internet Information Services > World Wide Web Services > Common HTTP Features > [✓] HTTP Errors:।
जेस टेलफ़ोर्ड

नोट: "त्रुटि पृष्ठ" और ".NET त्रुटि पृष्ठ" अलग-अलग हैं। आप विशेष रूप से "त्रुटि पृष्ठ" चाहते हैं ।
जेस टेल्फ़ोर्ड

नेट त्रुटि पृष्ठों केHOW-TO लिए @JessTelford ?
किकेनेट 14

94

यदि आप दूरस्थ सर्वर पर हैं तो आप अपनी web.config फ़ाइल को इस तरह कॉन्फ़िगर कर सकते हैं:

<configuration>
<system.webServer>
    <httpErrors errorMode="Detailed" />
    <asp scriptErrorSentToBrowser="true"/>
</system.webServer>
<system.web>
    <customErrors mode="Off"/>
    <compilation debug="true"/>
</system.web>


1
वास्तव में, <system.webserver>सेटिंग्स मेरे मामले में पर्याप्त थीं, धन्यवाद।
marapet

4
system.webServerक्लासिक एएसपी
टिम लुईस

2
customErrors मोड = "ऑफ" ने मेरे लिए यह किया
spankmaster79

यह अब उपयोग करने के लिए आवश्यक नहीं है customErrors(उदाहरण के लिए IIS 7+, ASP.NET, क्लासिक AppPool ) tedgustaf.com/blog/2011/5/…
Kiquenet

49

IIS एडमिन में साइट की होम स्क्रीन में "ASP" पर डबल क्लिक करें, "डीबगिंग गुण" का विस्तार करें, "ब्राउज़र में त्रुटियां भेजें" सक्षम करें, और "लागू करें" पर क्लिक करें।

होम स्क्रीन पर "त्रुटि पृष्ठ" के तहत "500" का चयन करें, फिर "फीचर सेटिंग्स को संपादित करें" और "विस्तृत त्रुटियों" का चयन करें।

ध्यान दें कि IIS 8.0 (Windows Server 2012) के लिए समान चरण लागू होते हैं।


शायद IIS 7.5, Windows 2008 R2, ASP.NET 4.5.1 (WebForms) पर CLASSIC AppPool (एकीकृत नहीं)
Kiquenet


20

के तहत web.config में

<system.webServer>

लाइन को बदलें (या जोड़ें)

<httpErrors errorMode="Detailed"></httpErrors>

साथ में

<httpErrors existingResponse="PassThrough" errorMode="Detailed"></httpErrors>

ऐसा इसलिए है क्योंकि डिफ़ॉल्ट रूप से IIS7 HTTP स्टेटस कोड को स्वीकार करता है जैसे कि 4xx और 5xx पाइपलाइन द्वारा आगे दिए गए एप्लिकेशन द्वारा उत्पन्न होते हैं।

अगला, "ASP" अनुभाग के तहत " ब्राउज़र में त्रुटियाँ भेजें " सक्षम करें , और " त्रुटि पृष्ठ / फीचर सेटिंग संपादित करें " के तहत , "विस्तृत त्रुटियां" चुनें।

इसके अलावा, IIS_IUSRS बिलिन समूह को वेबसाइट फ़ोल्डर पर राइट परमिशन दें ।


1
पावर शेल उपयोगकर्ता के समतुल्य के लिए, चलाएं:Set-WebConfigurationProperty '/system.WebServer/httpErrors' -Name errorMode -Value Detailed
Blaskovicz

20

TLDR: सबसे पहले यह निर्धारित करें कि आपको जिस पाइपलाइन में त्रुटि हो रही है (स्क्रॉल उस चीज़ के स्क्रीनशॉट की तलाश में है जो आपकी त्रुटि से मिलती-जुलती है), कुछ नया प्राप्त करने के लिए परिवर्तन करें, दोहराएं।

पहले निर्धारित करें कि आप वास्तव में कौन सा त्रुटि संदेश देख रहे हैं।

यदि आप यहाँ स्थित फ़ाइल देख रहे हैं ...

% Systemdrive% \ Inetpub \ custerr \\ 500.htm

... जो आमतौर पर इस तरह दिखता है:

IIS डिफ़ॉल्ट 500 त्रुटि

... तब आप जानते हैं कि आप वर्तमान में ** IIS में कॉन्फ़िगर किए गए त्रुटि पृष्ठ देख रहे हैं ** और आपको ASP.net customErrors सेटिंग, एस्प त्रुटि विस्तार सेटिंग, या "अनुकूल http त्रुटियों को दिखाने" ब्राउज़र सेटिंग को बदलने की आवश्यकता नहीं है।

यदि कोई इसे बदल देता है तो आप मेरे स्क्रीनशॉट पर भरोसा करने के बजाय उपरोक्त संदर्भित पथ को देखना चाह सकते हैं।

"हाँ, मैं ऊपर वर्णित त्रुटि देख रहा हूँ ..."

इस स्थिति में, आप < httpErrors > या IIS प्रबंधक में यह त्रुटि पृष्ठ -> सुविधा सेटिंग संपादित करें "सेटिंग देख रहे हैं। इसके लिए डिफ़ॉल्ट errorMode है = सर्वर नोड स्तर पर विस्तृत रूप से विस्तृत (साइट स्तर के विपरीत) जिसका अर्थ है कि जब आप रिमोट करते समय इस कॉन्फ़िगर किए गए त्रुटि पृष्ठ को देखेंगे, तो आपको सर्वर पर स्थानीय रूप से लॉग इन करने और पूर्ण देखने में सक्षम होना चाहिए। त्रुटि जो कुछ इस तरह दिखनी चाहिए:

विस्तृत HTTP त्रुटि

वर्तमान त्रुटि को ठीक करने के लिए आपके पास वह सब कुछ होना चाहिए जो आपको उस बिंदु पर चाहिए।

"लेकिन मुझे सर्वर पर ब्राउज़ करने में भी विस्तृत त्रुटि नहीं दिख रही है"

यह संभावनाओं के एक जोड़े को छोड़ देता है।

  1. सर्वर पर आप जिस ब्राउज़र का उपयोग कर रहे हैं, वह अपनी कनेक्शन सेटिंग्स में एक प्रॉक्सी का उपयोग करने के लिए कॉन्फ़िगर किया गया है, इसलिए इसे "स्थानीय" के रूप में नहीं देखा जा रहा है।
  2. आप वास्तव में उस साइट पर ब्राउज़ नहीं कर रहे हैं जिसे आप सोचते हैं कि आप ब्राउज़ कर रहे हैं - यह आमतौर पर तब होता है जब इसमें लोड बैलेंसर शामिल होता है। यह देखने के लिए पिंग चेक करें कि क्या डीएनएस आपको सर्वर पर या कहीं और आईपी देता है।
  3. आप साइट की httpErrors सेटिंग केवल "कस्टम" के लिए सेट कर रहे हैं। इसे "डिटेललोकलोनली" में बदलें। हालाँकि, यदि आपके पास कॉन्फ़िगरेशन त्रुटि है, तो यह काम नहीं कर सकता क्योंकि साइट स्तर httpErrors भी एक कॉन्फ़िगरेशन आइटम है। उस स्थिति में # 4 पर आगे बढ़ें
  4. सभी साइटों के लिए httpErrors के लिए डिफ़ॉल्ट "कस्टम" के लिए सेट है। इस स्थिति में आपको IIS प्रबंधक (और किसी विशेष साइट पर) में शीर्ष स्तर के सर्वर नोड पर क्लिक करने और httpErrors को बदलने की आवश्यकता नहीं है वहां सेटिंग्स विस्तृत सूची में । यदि यह एक आंतरिक सर्वर है और आप संवेदनशील जानकारी को विभाजित करने के बारे में चिंतित नहीं हैं, तो आप इसे "विस्तृत" पर भी सेट कर सकते हैं जो आपको सर्वर के अलावा क्लाइंट से त्रुटि को देखने की अनुमति देगा।
  5. आप UrlRewrite जैसे सर्वर पर एक मॉड्यूल को याद कर रहे हैं (यह मुझे बहुत काटता है, और यह अक्सर httpErrors सेटिंग्स की परवाह किए बिना सामान्य संदेश देता है)।

"सर्वर पर लॉग इन करना मेरे लिए कोई विकल्प नहीं है"

अपनी साइट के httpErrors को "विस्तृत" में बदलें ताकि आप इसे दूर से देख सकें। लेकिन अगर यह काम नहीं करता है तो आपकी त्रुटि पहले से ही एक त्रुटि हो सकती है, # 3 तुरंत ऊपर देखें। तो आप # 4 या # 5 के साथ फंस सकते हैं और आपको अपनी सर्वर टीम से किसी की आवश्यकता होगी।

"मैं ऊपर वर्णित त्रुटि पृष्ठ नहीं देख रहा हूं। मैं कुछ अलग देख रहा हूं"

यदि आप इसे देखते हैं ...

यहां छवि विवरण दर्ज करें

... और आप कुछ ऐसा देखने की उम्मीद करते हैं ...

यहां छवि विवरण दर्ज करें

... तो आपको IIS प्रबंधक में, साइट -> IIS -> ASP -> डीबगिंग गुणों को सही करने के लिए "ब्राउज़र में त्रुटियों को भेजें" को बदलने की आवश्यकता है

यदि आप इसे देखते हैं ...

यानी मित्रवत त्रुटियाँ १

या यह...

अर्थात अनुकूल त्रुटियाँ २

... आपको वास्तविक प्रतिक्रिया देखने के लिए अपने ब्राउज़र में मित्रवत त्रुटियों को अक्षम करना होगा या फ़िडलर के वेबव्यू का उपयोग करना होगा। आपका ब्राउज़र आपको दिखाने के लिए क्या चुनता है।

यदि आप इसे देखते हैं ...

कस्टम त्रुटियां सक्षम की गईं

... तब कस्टम त्रुटियां काम कर रही हैं लेकिन आपके पास एक कस्टम त्रुटि पृष्ठ नहीं है (बेशक इस बिंदु पर .net और क्लासिक एस्प के बारे में बात कर रहे थे)। आपको अपने web.config में अपने customErrors टैग को दूरस्थ रूप से सर्वर पर देखने के लिए, या दूर से देखने के लिए बंद करने की आवश्यकता है।

यदि आप कुछ ऐसा देखते हैं जो आपकी साइट की तरह स्टाइल किया गया है, तो कस्टम त्रुटियों की संभावना ऑन या रिमोटऑनली है और यह कस्टम पेज प्रदर्शित कर रहा है (दृश्य-> साझा-> उदाहरण के लिए MVC में Error.cshtml)। उस ने कहा, यह संभव नहीं है, लेकिन यह संभव है कि किसी ने httpErrors के लिए IIS में पृष्ठों को बदल दिया है, इसलिए उस पर पहला खंड देखें।


9

"मौजूदाResponse" httpErrors विशेषता के मान को "PassThrough" पर सेट करने का प्रयास करें। मेरा "बदलें" पर सेट किया गया था जो YSOD को प्रदर्शित नहीं कर रहा था।

<httpErrors errorMode="Detailed" existingResponse="PassThrough">

2
customErrors asp.net के लिए हैं। httpErrors IIS7 के लिए हैं, और इसलिए ऐसी सामग्री संभालते हैं जो .net हैंडलर (जैसे .png, .js आदि) से नहीं जाती हैं। यदि आप गैर-.net सामग्री प्रकारों के लिए त्रुटि पृष्ठ चाहते हैं, तो IIS त्रुटि पृष्ठों (IIS7 के लिए httpErors) का उपयोग करें। IIS6 के लिए UI।) कस्टमErrors विशेषता का उपयोग तब किया जाता है जब .net कोड अपवाद (404, 403, 500 आदि) को फेंक रहा होता है और जब IIS खुद अपवाद फेंक रहा है, तो httpErrors विशेषता का उपयोग किया जाता है। ऐसा इसलिए है क्योंकि डिफ़ॉल्ट रूप से IIS7 HTTP स्टेटस कोड को स्वीकार करता है जैसे कि 4xx और 5xx पाइपलाइन द्वारा आगे दिए गए एप्लिकेशन द्वारा उत्पन्न होते हैं।
किवनीत

6

एक बात जिसका उल्लेख नहीं किया गया है, वह बहुत ही त्वरित और अस्थायी सुधार है, आप उस वेब सर्वर के स्थानीयहोस्ट पर त्रुटि देख सकते हैं।


1
यदि वैक्लेव के उत्तर में दिखाई देने वाला तीसरा विकल्प चुना जाता है।
15

3

आप यह भी सत्यापित कर सकते हैं कि यदि आपने अपना मुख्य वेबसाइट फ़ोल्डर ( c:\inetpub\wwwroot) दूसरे फ़ोल्डर में बदल दिया है तो आपको नए फ़ोल्डर में IIS_IUSRS समूह को पढ़ने की अनुमति देनी होगी ।


3

बहुत से लोग जिन्होंने EVERYTHING और सिर्फ CANNOT की कोशिश की है, उन्हें मेरे जैसे त्रुटि विवरण प्राप्त करने के लिए, कॉन्फ़िगरेशन के विभिन्न स्तरों की जांच करना एक अच्छा विचार है। मेरे पास वेबसाइट स्तर पर और एप्लिकेशन स्तर (वेबसाइट के अंदर) पर एक कॉन्फ़िगर फ़ाइल है, दोनों की जांच करें। इसके अलावा, जैसा कि यह निकला, मैंने IIS में उच्चतम नोड पर विस्तृत त्रुटियों को अक्षम कर दिया था (बस प्रारंभ पृष्ठ के नीचे, इसका नाम है जो कि वेबसर्वर कंप्यूटर्नम के समान है)। वहां एरर पेज चेक करें।


1

मिल गया।

http://blogs.iis.net/ksingla/archive/2009/02/16/iis-7-5-updates-to-custom-errors-and-compression.aspx

cmd को व्यवस्थापक के रूप में चलाएं, अपने system32 \ inetsrv फ़ोल्डर में जाएं और निष्पादित करें:

appcmd.exe set config -section:system.webServer/httpErrors -allowAbsolutePathsWhenDelegated:true

अब मैं विस्तृत एस्प त्रुटियों को देख सकता हूं।


1

यदि आप ब्राउज़र को सर्वर में चलाते हैं और प्रोजेक्ट के अपने url का परीक्षण करते हैं तो स्थानीय आई पी के साथ आपको आम तौर पर त्रुटि पृष्ठ (उदाहरण के लिए 500 त्रुटि पृष्ठ) के बिना उस परियोजना की सभी त्रुटियां प्राप्त होती हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.