तैनाती की वेबसाइट: 500 - आंतरिक सर्वर त्रुटि


189

मैं एक ASP.NET एप्लिकेशन को तैनात करने की कोशिश कर रहा हूं। मैंने साइट को IIS में तैनात कर दिया है, लेकिन जब इसे ब्राउज़र के साथ जाना होता है, तो यह मुझे यह दिखाता है:

सर्वर त्रुटि

500 आंतरिक सर्वर त्रुटि।

आपके द्वारा खोजे जा रहे संसाधन के साथ एक समस्या है और इसे प्रदर्शित नहीं किया जा सकता है।

Web.config के साथ घूमने के बाद, मुझे मिला:

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

मैं इस सर्वर त्रुटि के पीछे वास्तविक समस्या कैसे देख सकता हूं?


1
सुनिश्चित करें कि आपके पास निर्देशिका पर MVC अनुप्रयोग के लिए वाइल्डकार्ड मैपिंग है ...
साजोशी

जवाबों:


298

सबसे पहले, आपको अपने वेब संदेशों की विस्तृत त्रुटियों को सक्षम करने और देखने की आवश्यकता है , क्योंकि सुरक्षा कारणों से वास्तव में क्या हो रहा है, इसकी जानकारी दिए बिना यह एक सामान्य संदेश है।

विस्तृत त्रुटि के साथ, आप यहां वास्तविक समस्या का पता लगा सकते हैं।

इसके अलावा, यदि आप सर्वर पर ब्राउज़र चला सकते हैं , तो आपको त्रुटि का विवरण मिलता है, क्योंकि सर्वर यह पहचानता है कि आप स्थानीय हैं और यह आपको दिखाता है। या यदि आप इवेंट व्यूअर का उपयोग करके सर्वर के लॉग को पढ़ सकते हैं , तो आप अपनी त्रुटि का विवरण भी देख सकते हैं।

पर आईआईएस 6

<configuration>
    <system.web>
        <customErrors mode="Off"/>
        <compilation debug="true"/>
    </system.web>
</configuration>

IIS 7 पर

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

नोट: आप डिबग = सच से बच सकते हैं । आपको केवल कुछ समय के लिए कस्टम त्रुटियों को बंद करने और विस्तृत त्रुटि पृष्ठ प्राप्त करने की आवश्यकता है।

संदर्भ: गो डैडी की सहायता लेखों में विंडोज कस्टम त्रुटि संदेश को सक्षम करना

इसके अलावा, यह मदद कर सकता है: विस्तृत त्रुटि संदेशों को कैसे सक्षम करें (IIS से)।


9
पोस्ट के लिए धन्यवाद! मेरे लिए इसे करने वाला हिस्सा था: <httpErrors errorMode = "विस्तृत" />
jaseeey

@codemonkeyliketab ही ... या समान होना आवश्यक है ... यदि आप आईआईएस चलाने के लिए अपने कंप्यूटर पर व्यक्त आपके EventViewer खोलने ...
Aristos

4
run the browser on the serverमेरे लिए काम किया .. धन्यवाद भाई
राजशेखर रेड्डी

1
@Learning हाँ वहाँ है - आप थोड़े समय के लिए विस्तृत त्रुटि को सक्षम करते हैं, अपनी कुछ त्रुटियों को खोजने में सक्षम होते हैं और अपने ऐप को चालू करते हैं - फिर आप इसे वापस बंद कर देते हैं
Aristos

1
धन्यवाद, IIS से विस्तृत त्रुटि संदेशों को सक्षम करने में मदद की।
वादिम टोफान

25

मैं इस मुद्दे पर अपने बाल खींच रहा था। यह सुनिश्चित करना कि निम्नलिखित प्रविष्टि रूट web.configफ़ाइल में मेरे लिए निर्धारित थी:

<configuration>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
  </system.webServer>
</configuration>

याद रखें कि आपको इसे मौजूदा XML तत्वों में जोड़ना होगा , यदि वे पहले से ही वहां हैं। आप केवल फ़ाइल के अंत में नहीं जोड़ सकते, क्योंकि आपके पास किसी भी तत्व की कई प्रतियां नहीं हो सकती हैं।


9

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

  <staticContent>
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
  </staticContent>

1
धन्यवाद .. मेरे लिए काम किया, लेकिन क्या वीडियो दिखाने के लिए माइम मैप की आवश्यकता है?
पनकी शर्मा

9

मैंने अंततः इस "500 आंतरिक सर्वर" त्रुटि को हल किया जब ASP.NET MVC 3.0 एप्लिकेशन को godaddy.ocm साझा होस्टिंग पर तैनात किया गया।

किसी तरह DLL फ़ाइलों के संस्करण और फ़ाइल में उल्लिखित संस्करण की विसंगतियां थीं web.config

मैंने विभिन्न फोरम में उल्लिखित सभी विकल्पों की कोशिश की। कुछ भी मदद नहीं की, हालांकि सभी ने एक ही तरह के फिक्स का सुझाव दिया, लेकिन किसी तरह यह मेरे परिदृश्य में काम नहीं आया। अंत में दो दिन तक मेरा सिर पीटने के बाद। मैंने परियोजना से सभी DLL फ़ाइल संदर्भ को हटाने और web.cofig (एक स्थानीय प्रतिलिपि बनाने) को हटाने का निर्णय लिया और एप्लिकेशन को त्रुटि को फेंकने दिया और फिर स्थानीय = सत्य की प्रतिलिपि बनाकर DLL फ़ाइलों को एक-एक करके जोड़ें।

सभी DLL फ़ाइलों को जोड़ने के बाद, मैंने एक नया ASP.NET MVC एप्लिकेशन बनाया और अपने वास्तविक एप्लिकेशन को नए एप्लिकेशन के web.config की प्रतिलिपि बनाई। तो मेरे वास्तविक अनुप्रयोग में अब एक नया web.config है, और फिर मैंने web.config की स्थानीय प्रति से कनेक्शनस्ट्रिंग और अन्य संदर्भों की प्रतिलिपि बनाई जिसे मैंने सहेजा था।

मैंने सिर्फ एप्लिकेशन को संकलित किया और एक स्थानीय फ़ोल्डर में प्रकाशित किया और goDaddy के लिए प्रकाशित फ़ोल्डर को एफ़टीपी किया।

इसने काम किया और आखिरकार मेरी समस्या हल हो गई।


मेरे द्वारा हल की गई त्रुटि: stackoverflow.com/questions/11359957/… इसके अलावा Elmah को स्थापित करना होगा
Per G

7

मेरे मामले में, मैंने अपनी web.configफ़ाइल में गलती की है । आवेदन कुंजी को किसी तरह <appSettings> टैग के तहत रखा गया था। लेकिन मुझे आश्चर्य है कि यह कॉन्फ़िगरेशन त्रुटि क्यों प्रदर्शित नहीं करता है। समस्या की जाँच के लिए त्रुटि 500 ​​बहुत सामान्य है।


बस यहाँ वही था। web.config को एक उप-निर्देशिका में गलती से कॉपी किया गया था और खरपतवार को गलत साबित कर दिया था, हालांकि मैंने "विस्तृत त्रुटियों को सही" दिखाया।
अवनी याय

7

मेरे द्वारा प्रकाशित की गई एक बहुत ही सरल साइट चलाने का मेरा पहला प्रयास केवल HTML द्वारा उत्पादित "पृष्ठ प्रदर्शित नहीं किया जा सकता क्योंकि आंतरिक सर्वर त्रुटि हुई है।"

समस्या: मेरे पास विज़ुअल स्टूडियो में .NET 3.5 पर साइट सेट है (राइट क्लिक वेब साइट प्रोजेक्ट -> प्रॉपर्टी पेज -> बिल्ड), लेकिन एज़्योर में वेब साइट को .NET 4.0 के रूप में कॉन्फ़िगर किया गया था। ऊप्स! मैंने इसे एज़्योर में 3.5 में बदल दिया, और इसने काम किया।


5

अन्य सुझावों के अलावा, बदलने के लिए सुनिश्चित कर लें existingResponseकी विशेषता httpErrorsके लिए नोड Autoसे Replace, या पूरी तरह से है कि संपत्ति हटाने के लिए।

<httpErrors existingResponse="Replace" />
                              ^^^^^^^ not going to work with this here

4

यदि भौतिक घर निर्देशिका पर अपर्याप्त अनुमति (यानी IIS_IUSRS की कोई पहुंच नहीं है) तो IIS किसी भी इवेंट लॉग संकेत के बिना स्थिति कोड 500 की रिपोर्ट करता है।


3

सर्वर त्रुटि 500 ​​- आंतरिक सर्वर त्रुटि। आपके द्वारा खोजे जा रहे संसाधन के साथ एक समस्या है और इसे प्रदर्शित नहीं किया जा सकता है। Goddady। होस्टिंग - वेब - अर्थव्यवस्था - विंडोज प्लेस्क

मेरे मामले में, मैं इस कोड को प्रतिस्थापित करता हूं:

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

फिर फ्रेमवर्क 3.5 को फ्रेमवर्क में बदलें 4. यह मेरी विस्तृत त्रुटि को दर्शाता है। में कोड हटाता हूँ:

<httpModules></httpModules>

इसने मेरी समस्या हल कर दी।


3

IIS 8 के लिए कस्टम सामग्री बदलने के अलावा अन्य करने के लिए एक अतिरिक्त चरण है = त्रुटि सामग्री दिखाने के लिए बंद।

<system.web>
   <customErrors mode="Off" />
</system.web>
<system.webServer>
   <httpErrors existingResponse="PassThrough" errorMode="Detailed"/>
</system.webServer>

इस लिंक में राउल ने सवाल का जवाब दिया। राउल ने IIS8 कस्टम त्रुटियों को बंद कर दिया


आपने "विस्तृत" के बाद समापन / याद किया
मैनुअल -84

यह समाधान IIS 10.0.14393.0 के लिए आवश्यक था।
मार्कस पार्सन्स

2

संभवतः आपकी web.config फ़ाइल गलत है या कुछ टैग गायब है। मैंने .NET 4 के लिए सही कॉन्फिग टैग का उपयोग करके अपनी समस्या हल की ।

<system.web>
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
        <assemblies>
            <add assembly="System.Deployment, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>
    </compilation>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
        <namespaces>
            <clear/>
            <add namespace="System"/>
            <add namespace="System.Collections"/>
            <add namespace="System.Collections.Specialized"/>
            <add namespace="System.Configuration"/>
            <add namespace="System.Text"/>
            <add namespace="System.Text.RegularExpressions"/>
            <add namespace="System.Web"/>
            <add namespace="System.Web.Caching"/>
            <add namespace="System.Web.SessionState"/>
            <add namespace="System.Web.Security"/>
            <add namespace="System.Web.Profile"/>
            <add namespace="System.Web.UI"/>
            <add namespace="System.Web.UI.WebControls"/>
            <add namespace="System.Web.UI.WebControls.WebParts"/>
            <add namespace="System.Web.UI.HtmlControls"/>
        </namespaces>
    </pages>
    <authentication mode="None"/>
</system.web>

2

मुझे आपके सर्वर में मौजूद फ़ाइलों और फ़ोल्डरों के लिए अनुमतियों का भी एहसास हुआ। मैंने अपनी फ़ाइलें एक लिनक्स ऑपरेटिंग सिस्टम से अपलोड की हैं और आमतौर पर अनुमतियाँ पढ़ने और लिखने के लिए सीमित हैं। इसलिए जब अपलोड किया जाता है, तो अनुमति स्थानीय मशीन की तरह ही होती है।

मेरे पास एक ही त्रुटि थी और मैंने अभी अपलोड किए गए फ़ोल्डर की अनुमतियों को बदल दिया था और त्रुटि चली गई थी।

आशा है कि यह किसी की मदद करता है।


क्या यह उत्तर मूल रूप से जुलाई 2014 से इस उत्तर के समान नहीं है ?
वाई हा ली

1

500 आंतरिक त्रुटि
विंडोज होस्टिंग त्रुटि

Godaddy होस्टिंग समस्या

मैं एक ही मुद्दे का सामना कर रहा हूं, लेकिन अब मेरा मुद्दा हल हो गया है। हमेशा इस होस्टिंग में उपयोग करें यह काम करता है।

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

<?xml version="1.0"?>

<configuration>
    <system.web>
        <trust level="Medium"/>
        <compilation debug="true" targetFramework="4.5">
            <assemblies>
                <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            </assemblies>
        </compilation>

        <httpRuntime targetFramework="4.5" />
        <sessionState mode="InProc" cookieless="false" timeout="90" />
        <authentication mode="Forms">
            <forms loginUrl="default.aspx"  
                   defaultUrl="default.aspx"
                   protection="All"
                   cookieless="UseCookies"
                   slidingExpiration="false"
                   timeout="30"
                   name="aeon.corpusjuris.in" />
        </authentication>

        <customErrors 
            mode="Off" 
            defaultRedirect="errorpage.aspx">

            <error statusCode="403" redirect="errorpage.aspx"/>
            <error statusCode="404" redirect="errorpage.aspx"/>
        </customErrors>

        <!--  <httpModules>
                <add name="HTTPCaching" type="HTTPCaching"/>
            </httpModules>
        -->
    </system.web>

    <runtime>
        <performanceScenario value="HighDensityWebHosting"  />
    </runtime>

    <system.webServer>
        <!--  <modules runAllManagedModulesForAllRequests="true">
                <add name="HTTPCaching" type="HTTPCaching"/>
            </modules>
        -->

        <defaultDocument>
            <files>
                <clear />
                <add value="default.aspx" />
            </files>
        </defaultDocument>

        <httpErrors errorMode="Detailed" />
        <asp scriptErrorSentToBrowser="true"/>

        <staticContent>
            <clientCache cacheControlCustom="public"
                         cacheControlMaxAge="60:00:00"
                         cacheControlMode="UseMaxAge" />
        </staticContent>
    </system.webServer>

    <system.web.extensions>
         <scripting>
             <webServices>
                 <jsonSerialization maxJsonLength="90000000">
                 </jsonSerialization>
             </webServices>
         </scripting>
    </system.web.extensions>

</configuration>

मेरे मामले में त्रुटि का कारण <httpRuntime enableVersionHeader = "false" /> web.config में था
b3wii

1

यदि आप एक कस्टम HttpHandler का उपयोग कर रहे हैं (यानी, कार्यान्वयन IHttpModule), तो सुनिश्चित करें कि आप इसकी Errorविधि के लिए कॉल का निरीक्षण कर रहे हैं ।

स्थानीय डिबगिंग के दौरान आप अपने हैंडलर को वास्तविक HttpExceptions(जो एक उपयोगी Messageसंपत्ति है) फेंक सकते हैं :

    public void Error(object sender, EventArgs e)
    {
        if (!HttpContext.Current.Request.IsLocal)
            return;
        var ex = ((HttpApplication)sender).Server.GetLastError();
        if (ex.GetType() == typeof(HttpException))
            throw ex;
    }

अपवाद का निरीक्षण करना भी सुनिश्चित करें InnerException


1

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


यह डोमेन पंजीकरण 06/15/2018 को समाप्त हो गया।
पेट्रीसिया

लिंक अब मैलवेयर परोस रहा है। मैंने लिंक को हटा दिया है
Liam

0

सुनिश्चित करें कि आपका खाता IIS 7 का उपयोग करता है। अधिक जानकारी के लिए, अपने Windows होस्टिंग खाते पर IIS सेटिंग्स को अनुकूलित करना देखें। अपने विंडोज IIS 7 होस्टिंग खाते पर पाइपलाइन मोड बदलने के निर्देशों का पालन करें। एकीकृत पाइपलाइन मोड का चयन करें। अपने प्रोजेक्ट संदर्भ अनुभाग में, निम्न असेंबली के लिए ट्रू लोकल को ट्रू में सेट करें:

System.Web.Abstractions
System.Web.Helpers
System.Web.Routing
System.Web.Mvc
System.Web.WebPages

निम्न असेंबली को अपने प्रोजेक्ट में जोड़ें, और फिर कॉपी लोकल को True पर सेट करें:

Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
Publish your application.

0

कभी-कभी, कारण आपके .dll असेंबली में से एक सर्वर पर सही ढंग से पंजीकृत नहीं हो सकता है।

उदाहरण के लिए, आप सर्वर पर परिनियोजन पर 500 त्रुटि प्राप्त करते हुए, अपने स्थानीय मशीन पर C # Excel वेब एप्लिकेशन को सफलतापूर्वक स्थापित कर सकते हैं, क्योंकि सर्वर पर कोई Office सूट स्थापित नहीं है, और इस प्रकार आपको सर्वर त्रुटि मिलती है।


0

जिनके लिए यह संभावना है (वीपीएस होस्टिंग नहीं वेब होस्टिंग):

रिमोट डेस्कटॉप के माध्यम से अपने होस्टिंग सर्वर से कनेक्ट करें। अपने दूरस्थ डेस्कटॉप से ​​वेब ब्राउज़र खोलें और आपको त्रुटि का विवरण दिखाई देगा।

आपको web.config को संशोधित करने या किसी अन्य को किसी भी विवरण को उजागर करने की आवश्यकता नहीं है।


0

यदि आप IIS 8.5 का उपयोग कर रहे हैं, तो हो सकता है कि आपको ApplicationPoolI सेटिंग से ApplicationPoolId को NetworkService में बदलना होगा

प्रश्न में एप्लिकेशन पूल पर राइट क्लिक करें, "उन्नत सेटिंग्स" पर क्लिक करें और फिर आईडी पर नीचे स्क्रॉल करें - यह संभवत: ApplicationPoolIdentity पर सेट किया जाएगा । बटन (..) पर क्लिक करें और इसके बजाय ड्रॉपडाउन सूची से नेटवर्क सेवा चुनें ।

यह भी सुनिश्चित करें कि यदि यह .NET 2.0 अनुप्रयोग है जो आप अपने ऐप पूल में 4.0 फ्रेमवर्क को संदर्भित नहीं कर रहे हैं।


0

web.configफ़ाइल को बदलने से पहले , मैं जाँच करूँगा .NET Frameworkकि आप जिस संस्करण का उपयोग कर रहे हैं, वह वास्तव में है (मेरा मतलब है कि यह 4.5! = 4.5.2) आपकी GoDaddyसेटिंग्स (ASP.Net सेटिंग्स आपकी Plesk panel) की तुलना में समान है । यह आपके web.config फ़ाइल को स्वचालित रूप से सही फ्रेमवर्क में बदलना चाहिए।

यह भी ध्यान दें कि अभी (जनवरी '16) के लिए, के GoDaddyसाथ काम करता है ASP.Net 3.5और 4.5.24.5.2विज़ुअल स्टूडियो के साथ उपयोग करने के लिए इसे 2012नया या नया होना चाहिए , और यदि 2015 नहीं है, तो आपको .NET फ्रेमवर्क 4.5.2 डेवलपर पैकेज को डाउनलोड और इंस्टॉल करना होगा।

यदि अभी भी काम नहीं कर रहा है, तो हाँ, आपका अगला कदम विस्तृत त्रुटि रिपोर्टिंग को सक्षम करने वाला होना चाहिए ताकि आप इसे डीबग कर सकें।


0

मैं हाल ही में एक ही समस्या में है, डिस्क स्थान सर्वर पर भरा हुआ था। कुछ जगह को साफ करने से समस्या हल हो गई है।


0

एक और कारण Url पुनर्लेखन हो सकता है, बस web.config फ़ाइल में "rewrite" अनुभाग निकालें / टिप्पणी करें


-1

डीबग मोड (विज़ुअल स्टूडियो में) संकलन का प्रयास करें। यदि आप रिलीज़ मोड में हैं, तो बहुत से URL पुनर्लेखन त्रुटियाँ उपलब्ध नहीं होंगी।

छवि दृश्य स्टूडियो में डिबग चयन कॉम्बोबॉक्स दिखाती है

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

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