c# - ASP.NET Core 1.0 IIS त्रुटि 502.5 पर




asp.net-core windows2012 (20)

मैंने अपने सर्वर (Windows 2012R2) को .Net Core 1.0 RTM विंडोज होस्टिंग पैक से पिछले .Net Core 1.0 RC2 अपडेट किया था। मेरा ऐप बिना किसी समस्या के मेरे पीसी पर काम करता है लेकिन सर्वर दिखाता रहता है:

HTTP Error 502.5 - Process Failure


Common causes of this issue:

The application process failed to start
The application process started but then stopped
The application process started but failed to listen on the configured port

यह पहले RC2 संस्करण के साथ काम करता था। पता नहीं क्या गलत हो सकता है।

यह सब घटना दर्शक कहते हैं:

Failed to start process with the commandline 'dotnet .\MyWebApp.dll'. Error code = '0x80004005'.

सबसे बुरी बात यह है कि ऐप लॉग खाली हैं! मेरा मतलब है कि उन stdout_xxxxxxxxx.log फाइलें पूरी तरह से खाली हैं और सभी में 0 बाइट का आकार है।

मुझे क्या करना चाहिए?? लॉग न होने पर मैं त्रुटि का कारण कैसे जान सकता हूं ??


इसलिए मुझे एक नया सर्वर मिला, इस बार यह विंडोज 2008R2 है और मेरा ऐप ठीक काम करता है।

मैं यह सुनिश्चित करने के लिए नहीं कह सकता कि पुराने सर्वर के साथ समस्या क्या थी, लेकिन मेरे पास एक विचार है।

इसलिए क्योंकि मैंने पहले ही ऐप को बिना किसी प्लेटफॉर्म के ध्यान में रखते हुए संकलित कर दिया था, इससे मुझे dll संस्करण मिला जो केवल तभी काम करता है जब लक्ष्य होस्ट में .Net Core Windows Hosting पैकेज स्थापित हो। मेरे मामले में यह स्थापित किया गया था और यह ठीक था

ऐप के काम नहीं करने के बाद मैंने इसे कंसोल 7 के साथ रन 7 के रूप में कंसोल ऐप के रूप में संकलित करने का निर्णय लिया। इस बार जब मैंने सर्वर पर अपने ऐप का exe चलाया, तो यह एक लापता dll के बारे में एक त्रुटि के साथ दुर्घटनाग्रस्त हो गया:

The program can't start because api-ms-win-crt-runtime-l1-1-0.dll is missing

यह dll यूनिवर्सल C रनटाइम से है जो Visual Studio 2015 के लिए Visual C ++ Redistributable में शामिल है।

मैंने उस पैकेज (दोनों x64 और x86) को स्थापित करने की कोशिश की, लेकिन यह हर बार असफल रहा (पता नहीं क्यों) विंडोज सर्वर 2012 आर 2 पर।

लेकिन जब मैंने उन्हें नए सर्वर, विंडोज सर्वर 2008 आर 2 में स्थापित करने की कोशिश की, तो वे सफलतापूर्वक स्थापित हो गए। इसके पीछे यही कारण रहा होगा, लेकिन फिर भी यह सुनिश्चित नहीं हो सकता।


एक ही मुद्दा था और सभी समाधान काम नहीं किया। इस मणि को मिला और सोचा कि अगर मैं किसी और की मदद करूं तो मैं भी पास हो जाऊंगा। DLL लापता त्रुटि हो रही सर्वर 2012 R2 पर स्थापित करें, VS C ++ 2015 को पुनर्स्थापित करने का प्रयास करें और एक त्रुटि प्राप्त करें। निम्नलिखित को ठीक करना है:

फ़ाइल को C:\ProgramData\Package Cache\...\packages\Patch\x64\Windows8.1-KB2999226-x64.msu में समस्याएँ हैं। ओपन एडमिन कमांड प्रॉम्प्ट करें:

c:
mkdir tmp
mkdir tmp\tmp
move "C:\ProgramData\Package Cache\...\packages\Patch\x64\Windows8.1-KB2999226-x64.msu" c:\tmp
expand -F:* c:\tmp\Windows8.1-KB2999226-x64.msu c:\tmp\tmp
dism /online /add-package /packagepath:c:\tmp\tmp\Windows8.1-KB2999226-x64.cab

नोट: सही फ़ोल्डर नाम के साथ "..." को बदलें। इसके बाद VS C ++ 2015 पैकेज को फिर से इंस्टॉल करें।


प्रकाशन कॉन्फ़िगरेशन बदलने के बाद मेरे लिए काम किया।


मुझे उसी समस्या का सामना करना पड़ा जब मैंने अपने वेब एप्लिकेशन के डिबग संस्करण को प्रकाशित करने की कोशिश की। फ़ाइलों के इस सेट में फ़ाइल web.config नहीं है जिसमें विशेषता processPath का उचित मूल्य है।

मैंने इस फ़ाइल को रिलीज़ संस्करण से लिया, मान को मेरी exe फ़ाइल को पथ सौंपा गया था।

  <PropertyGroup>
    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
  </PropertyGroup>

मुझे प्रश्न में वही त्रुटि थी, जो प्रस्तावित उत्तर में वीएसजी 24 द्वारा वर्णित समान मुद्दों के साथ है - सीएमडी में 'डॉटनेट' टाइप करते समय गंदा त्रुटि संदेश:

कार्यक्रम शुरू नहीं हो सकता क्योंकि एपी-एमएस-विन-क्रेट-रनटाइम-एल -1-1-0.dll गायब है

मैंने इसे Windows Server 2012 R2 पर निम्नलिखित 2 अपडेट्स को मैन्युअल रूप से इंस्टॉल करके (और पूर्व-अपेक्षित और जुड़े हुए अन्य सभी अपडेट्स - Microsoft वेबसाइट पर इंस्टॉलेशन निर्देशों को ध्यान से पढ़ें):

  1. KB2919355
  2. KB2999226

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


मुझे भी यही समस्या थी।

इसका सटीक स्रोत जानने के लिए मैंने web.config फ़ाइल में लॉगिंग पर स्विच किया:

<aspNetCore processPath="dotnet" arguments=".\MyWebService.dll" stdoutLogEnabled="**true**" stdoutLogFile=".\logs\stdout" />

और MyWebService रूट फ़ोल्डर में लॉग इन सबफ़ोल्डर बनाया।

IIS को पुनरारंभ करने और API को निष्पादित करने की कोशिश करने के बाद मुझे एक त्रुटि मिली और यह उचित कोर रनटाइम से गायब था। DotNetCore.1.0.5_1.1.2-Windows -osting को डाउनलोड करने के बाद त्रुटि हो गई।


मुझे यह IIS के हार्ड रीसेट के साथ काम कर रहा था (मैंने केवल होस्टिंग पैकेज स्थापित किया था)।

पता चलता है कि सिर्फ IIS प्रबंधक में 'रीस्टार्ट' को दबाने के लिए पर्याप्त नहीं है। मुझे बस एक कमांड प्रॉम्प्ट खोलना था और 'iisreset' टाइप करना था।


मुझे यह समस्या अस्वस्थ लगी (त्रुटि VS 15 और 17 दोनों को हुई)। हालाँकि VS15 पर इसने एक CONNECTION_REFUSED त्रुटि लौटा दी और VS17 पर इसने ASP.NET Core 1.0 on IIS error 502.5 लौटा ASP.NET Core 1.0 on IIS error 502.5

ठीक कर

  1. अपनी प्रोजेक्ट डायरेक्टरी पर नेविगेट करें और छिपे हुए फ़ोल्डर का पता लगाएं .vs (यह प्रोजेक्ट्स फ़ोल्डर dir में स्थित है)। (छुपी हुई फ़ाइलें / फ़ोल्डर दिखाना याद रखें)

  2. बंद वी.एस.

  3. .Vs- फोल्डर को डिलीट करें
  4. VS को व्यवस्थापक के रूप में प्रारंभ करें (.vs- फ़ोल्डर VS द्वारा पुनः बनाया जाएगा)

मुझे वही त्रुटि मिल रही थी, और पता चला कि अज़ुरे को प्रकाशित करने के दौरान, मेरी web.config फ़ाइल को संशोधित किया गया था, इसलिए इस पंक्ति को इस तरह समाप्त किया गया:

<aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" arguments="-argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" startupTimeLimit="3600" requestTimeout="23:00:00" />

उत्पादन के लिए समस्या तर्क की सामग्री है: "-ggile IISExeLauncherArgsxt"

ऐसा लगता है कि यह मुद्दा अगले .NET कोर SDK (वर्तमान में पूर्वावलोकन) में संबोधित किया जा रहा है, लेकिन अभी के लिए, इस ब्लॉक को .csproj फ़ाइल में जोड़ना है:

<Target Name="bug_242_workaround" AfterTargets="_TransformWebConfig">
    <Exec Command="powershell &quot;(Get-Content '$(PublishDir)Web.config').replace(' -argFile IISExeLauncherArgs.txt', '') | Set-Content '$(PublishDir)Web.config'&quot;" />
  </Target>

यह web.config को संशोधित करेगा और प्रकाशन के लिए समस्याग्रस्त भाग को हटा देगा।

संदर्भ: https://github.com/aspnet/websdk/issues/242

आशा है ये मदद करेगा।


मेरे पास एक समान मुद्दा था (Asp.Net Core 2.x) जो कि 64-बिट विंडोज़ सर्वर पर IIS में 32-बिट asp.net कोर ऐप चलाने की कोशिश के कारण हुआ था। मूल कारण यह था कि वेब.कॉन्फ़िग जो ऑटो-जेनरेट होता है (यदि आपकी परियोजना में स्पष्ट रूप से एक शामिल नहीं है, जो asp.net कोर प्रोजेक्ट डिफ़ॉल्ट रूप से नहीं करता है) में डॉटनेट निष्पादन योग्य के लिए पूर्ण पथ शामिल नहीं है। जब आप 64 बिट मशीन पर होस्टिंग बंडल स्थापित करते हैं, तो यह डॉटनेट के 64 और 32 बिट संस्करणों को स्थापित करेगा, लेकिन पथ डिफ़ॉल्ट रूप से 64 बिट पर सेट हो जाएगा और आपका 32 बिट asp.net कोर ऐप लोड करने में विफल हो जाएगा। आपके ब्राउज़र में आपको 502.5 त्रुटि दिखाई दे सकती है और यदि आप सर्वर इवेंट लॉग देखते हैं तो आपको त्रुटि कोड 0x80004005 दिखाई दे सकता है। यदि आप अपने सर्वर पर अपने asp.net कोर एप्लिकेशन dll को लोड करने के लिए कमांड प्रॉम्प्ट से dotnet.exe को चलाने का प्रयास करते हैं, तो आपको "BadImageFormatException" जैसी त्रुटि दिखाई दे सकती है या "प्रोग्राम को एक गलत प्रारूप के साथ लोड करने का प्रयास किया गया था"। मेरे लिए काम करने वाला फ़िक्स मेरे प्रोजेक्ट (और परिनियोजन) में एक web.config जोड़ने के लिए था और उस web.config में dotnet.exe के 32-बिट संस्करण के लिए पूरा रास्ता तय किया।

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <location path="." inheritInChildApplications="false">
        <system.webServer>
            <handlers>
                <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
            </handlers>
            <aspNetCore processPath="C:\Program Files (x86)\dotnet\dotnet.exe" arguments=".\My32BitAspNetCoreApp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
       </system.webServer>
   </location>
</configuration>

मेरे पास एक ही मुद्दा था। मैंने एप्लिकेशन पूल पहचान को नेटवर्क सेवा खाते में बदल दिया। फिर मैंने स्पष्ट रूप से @ ganiub टिप्पणी में @danielyewright के रूप में काम करने के लिए आवेदन के लिए web.config में dotnet.exe के लिए रास्ता निर्धारित किया है। यह पथ निर्धारित करने के बाद काम करता है।

धन्यवाद


मेरे पास एक ही समस्या थी, मेरे मामले में यह मेरे एप्लिकेशन पूल के उपयोगकर्ता पहचान की अपर्याप्त अनुमति थी, asp.net doc के IIS पृष्ठ पर प्रकाशित होने पर, इस त्रुटि के लिए सूचीबद्ध कारण की एक जोड़ी है:

  • यदि आपने एक स्व-निहित एप्लिकेशन प्रकाशित किया है, तो पुष्टि करें कि आपने project.json buildOptions में एक प्लेटफ़ॉर्म सेट नहीं किया था। जो कि प्रकाशन RID के साथ संघर्ष करता है। उदाहरण के लिए, x86 के एक मंच को निर्दिष्ट न करें और win81-x64 ( dotnet publish -c Release -r win81-x64 ) के एक RID के साथ प्रकाशित करें। परियोजना चेतावनी या त्रुटि के बिना प्रकाशित होगी लेकिन सर्वर पर उपर्युक्त लॉग इन अपवादों के साथ विफल।
  • यह पुष्टि करने के लिए web.config में <aspNetCore> तत्व पर processPath विशेषता की जाँच करें कि यह पोर्टेबल अनुप्रयोग के लिए डॉटनेट है या आत्म-निहित अनुप्रयोग के लिए \ my_application.exe।
  • पोर्टेबल एप्लिकेशन के लिए, PATH सेटिंग्स के माध्यम से dotnet.exe सुलभ नहीं हो सकता है। पुष्टि करें कि सिस्टम पथ सेटिंग्स में C:\Program Files\dotnet\ मौजूद है।
  • पोर्टेबल एप्लिकेशन के लिए, अनुप्रयोग पूल के उपयोगकर्ता पहचान के लिए dotnet.exe सुलभ नहीं हो सकता है। पुष्टि करें कि AppPool उपयोगकर्ता की पहचान C:\Program Files\dotnet निर्देशिका तक पहुँच है।
  • पुष्टि करें कि आपने अनुप्रयोग के WebHostBuilder() के .UseIISIntegration() विधि को कॉल करके IIS एकीकरण मिडिलवेयर को सही ढंग से संदर्भित किया है।
  • यदि आप Kestrel के साथ स्वयं-होस्टिंग करते समय .UseUrls() एक्सटेंशन विधि का उपयोग कर रहे हैं, तो पुष्टि करें कि यह .UseIISIntegration() एक्सटेंशन विधि .UseIISIntegration() से पहले स्थित है। .UseIISIntegration() IIS के पीछे Kestrel चलाते समय रिवर्स-प्रॉक्सी के लिए Url सेट करना चाहिए और इसके मान को ओवरराइड नहीं करना चाहिए .UseUrls()

मेरे मामले में यह चौथा कारण था, मैंने अपने ऐप पूल पर राइट क्लिक करके इसे बदल दिया, और प्रोसेस मॉडल के तहत उन्नत सेटिंग में, मैंने पर्याप्त अनुमति वाले उपयोगकर्ता की पहचान सेट की:


मेरे मामले में, AspNetCore.2.0.6.RuntimePackageStore_x64.exe और DotNetCore.2.0.6-WindowsHosting.exe स्थापित करने के बाद, मुझे 502 खराब गेटवे और प्रॉक्सी त्रुटि के बिना काम करने के लिए सर्वर को पुनरारंभ करने की आवश्यकता है।

अपडेट करें:

एक ऐसा तरीका है जिसे आप बिना पुनरारंभ किए उपयोग कर सकते हैं: https://.com/a/50808634/3634867


मेरे लिए यह .Net कोर के विभिन्न संस्करणों के होने के कारण था। मैंने अपने देव और प्रोडक्शन सर्वर का मिलान किया और यह काम कर गया।


मेरे वीएस प्रोजेक्ट के स्वतः .NET .NET 1.1.2 में अपग्रेड होने के बाद मुझे अपने प्रोडक्शन सर्वर पर यह समस्या मिली।

मैंने अपने उत्पादन सर्वर पर यहाँ से 1.1.2 .net कोर रनटाइम स्थापित किया: https://www.microsoft.com/net/download/core#/runtime


मैं अपने .NET कोर 2.0 एपीआई को AWS EB में प्रकाशित करने का प्रयास करते समय HTTP त्रुटि 502.5 प्राप्त कर रहा था, और .csproj में निम्न कोड जोड़कर इसे हल किया:

"buildOptions": {
    "emitEntryPoint": true
  }

मैंने साइट के एप्लिकेशन में "एडिट अनुमति" को जोड़कर इसे हल किया, भौतिक निर्देशिका में मैप किया और फिर उन विंडो उपयोगकर्ता का चयन किया जो इस रूट फ़ोल्डर तक पहुंच सकते थे। (प्राइवेट नेटवर्क)।


यह वही है जो मैंने सोचा था, और यह हाल ही में विंडोज 10 पर एक अद्यतन स्थापित होने के बाद हुआ। जो मैंने इकट्ठा किया था, उससे एक विंडोज डिफेंडर अपडेट स्थापित किया गया था, जिसे मेरा "Project.dll" (एक asp.net कोर प्रोजेक्ट) एक वायरस की तरह व्यवहार किया गया था, इसलिए इसे हटा दिया गया था।

इसलिए, सामान को अनइंस्टॉल / अनइंस्टॉल करने की शुरुआत करने से पहले मैं आपको जो सुझाव देता हूं, उनमें से एक यह है कि आप अपने "प्रोजेक्ट.डेल" की पुष्टि करें कि यह कहां होना चाहिए।

अगर यह अब नहीं है तो इसे वापस लोकेशन पर कॉपी करें।

यदि आपको फ़ाइल वापस कॉपी करने में कठिनाई हो रही है, तो अपने प्रोजेक्ट फ़ोल्डर में विंडोज़ डिफेंडर में एक बहिष्करण जोड़ें । ( जानें कि यहां कैसे करना है ।)

यह मेरे लिए तुरन्त काम आया, और मैंने इसे कई सर्वरों के साथ दोहराया।


वेब ऐप प्रकाशित करते समय मेरे पास एक ही मुद्दा था। अगर किसी को अभी भी इस समस्या को {AppName} .runtimeconfig.json को बदलकर ठीक किया गया है

    {
  "runtimeOptions": {
    "framework": {
      "name": "Microsoft.NETCore.App",
      "version": "1.1.2"
    },
    "configProperties": {
      "System.GC.Server": true
    }
  }
}

संस्करण को "संस्करण": "1.1.2" से "संस्करण" में बदलें : "1.1.1" और एवरीथिन ने ठीक काम किया


SOLVED मैं सिर्फ AZURE परिनियोजित करते समय उसी मुद्दे के माध्यम से चला गया। फिर मैंने स्थानीय आईआईएस के लिए भी यही कोशिश की, वही मुद्दा मिला। जैसा कि मैंने नया .net CORE, कुछ घंटे संघर्ष किया, इससे पहले कि मैं वास्तव में इसे हल करूं।

हमारे समाधान में, IIS में प्रकाशित होने के बाद, मैंने अपनी web.confile फ़ाइल देखी, विशेष रूप से पंक्ति के नीचे <aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" arguments="-argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" />

हमारे परिनियोजन फ़ोल्डर में जनरेट किया गया web.config दिखता है: <aspNetCore processPath="dotnet" arguments=".\Yodlee.dll -argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />

अब कृपया दृश्य स्टूडियो समाधान में उपरोक्त कॉन्फ़िगरेशन को बदलने की कोशिश करें <aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" forwardWindowsAuthToken="false" stdoutLogEnabled="false" />

हमारे नए परिनियोजन फ़ोल्डर में जनरेट किया गया web.config दिखता है: <aspNetCore processPath="dotnet" arguments=".\Yodlee.dll" forwardWindowsAuthToken="false" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />

और इसने मेरी समस्या हल कर दी, आशा है कि यह मदद करेगा।





windows2012