.NET कोर ऐप ErrorCode='0x80004005: 80008083 के कारण IIS में प्रारंभ करने में असमर्थ है




asp.net-core .net-core (8)

मेरे पास .NET Core एप्लिकेशन है। यह VS2017 और Kestrel के साथ स्थानीय रूप से चलता है। यह IIS के अंतर्गत स्थानीय रूप से चलता है। हालाँकि, सर्वर पर यह 502.5 - Process Failure संदेश के साथ प्रारंभ करने में विफल रहता है।

ईवेंट लॉग में मुझे अधिक विवरण मिलता है:

अनुप्रयोग '...' भौतिक रूट के साथ 'C: ... \ my-app-folder \' कमांडलाइन 'डॉटनेट' के साथ प्रक्रिया शुरू करने में विफल रहा। \ MyApp.dll ', ErrorCode =' 0x80004005: 80008083।

पिछले सर्वर एक ही सर्वर पर ठीक काम करते हैं, एकमात्र अंतर यह है कि उन्हें VS2017RC (2 और 3) के साथ प्रकाशित किया गया था और यह पूरी तरह से जारी VS2017 के साथ पहला निर्माण है।

ErrorCode = '0x80004005 : 80008083. का क्या अर्थ है?

मैं इसे कैसे ठीक करूं?


.Net कोर 2.0 के लिए

  1. उपयुक्त DotNetCore.2.0.Y की जाँच करें- WindowsHosting स्थापित है। यदि आपकी परियोजना 2.1 है तो 2.1 स्थापित करें। तदनुसार)
  2. विंडोज़ होस्टिंग स्थापित होने के बाद एक कंप्यूटर पुनरारंभ "आवश्यक" है।
  3. खुली शक्तियां; सीडी स्थापना_निर्देशिका; dotnet abcd.dll यह एक पूर्व नियंत्रण है जिसे आप WindowsHosting स्थापित करने के बाद देख सकते हैं ...

अभी के लिए, यह देखने का एक सरल तरीका है कि वास्तविक त्रुटि क्या है। ऐप सेवा से कंसोल अनुभाग खोलें, फिर डॉटनेट ऐप चलाने का प्रयास करें। वहां से हमें पूर्ण त्रुटि संदेश और ट्रेस जानकारी मिल सकती है:


जैसा कि VS2017 RC को .NET Core SDK ( .NET Core 1.0.4 SDK 1.0.1 ) के नए संस्करण के साथ शिप किया गया है, आपको सर्वर पर भी फ्रेमवर्क अपडेट करना होगा।


त्रुटि कोड: 0x80004005 अर्थ है किसी फ़ाइल का गुम होना या एक्सेस नहीं किया जा सकता।

उप-कोड: 80008083 एक संस्करण संघर्ष प्रतीत होता है।

इस त्रुटि का मतलब है कि सर्वर पर डॉटनेट का एक अलग संस्करण स्थापित होना चाहिए।


मुझे भी यह समस्या थी और मुझे लगा कि मैं अपना समाधान पोस्ट करूंगा। मुझे यकीन नहीं है कि यह इरादा है या नहीं, लेकिन मुझे नहीं लगता कि डॉटनेट कोर 2 आपके प्रोजेक्ट नाम में अंतरिक्ष वर्णों का समर्थन करता है।

मैंने "माइक्स ऐप" नामक एक प्रोजेक्ट बनाया और प्रकाशित किया और जब आईआईएस के साथ साइट को चलाने का प्रयास किया गया तो मुझे यह त्रुटि (.NET कोर ऐप आईआईएस में शुरू करने में असमर्थ होने के कारण त्रुटि हो गई = '0x80004005')। जब मैंने web.config फ़ाइल के माध्यम से stdoutLog को सक्षम किया तो मुझे त्रुटि मिली:

कोई निष्पादन योग्य मिलान आदेश नहीं मिला "डॉटनेट -। \ _ माइक्स"

जो मुझे अजीब लगा क्योंकि web.config फ़ाइल ने सही ढंग से तर्कों के तहत dll पथ को दिखाया था जो "। \ _ Mikes.dll" था।

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

मैंने विज़ुअल स्टूडियो में एक नया डॉटनेट कोर 2 प्रोजेक्ट बनाया और इसे "माइक्स-ऐप" नाम दिया, इसके बजाय इसे फिर से प्रकाशित किया और मेरी IIS साइट पर निर्देशिका को अपडेट किया।

तब साइट ने ठीक काम किया!


मेरे लिए काम करने वाला एक संभावित समाधान यह है कि मैंने इसे विज़ुअल स्टूडियो में अपने प्रकाशन प्रोफ़ाइल में जोड़ा:

<PublishWithAspNetCoreTargetManifest>False</PublishWithAspNetCoreTargetManifest>

मेरा मानना ​​है कि इससे मेजबान को लक्ष्य प्रकट में निर्धारित विनिर्देशों पर निर्भर रहने के बजाय एप्लिकेशन को चलाने के लिए आवश्यक फाइलों का उपयोग करना पड़ेगा जो गलत हो सकता है (या तो सर्वर पर रनटाइम / एसडीके या इन विनिर्देशों के साथ आपका स्थानीय विरोध है)।


मैं IIS पर चल रहा हूं, और मुझे 0x80004005: 0 की त्रुटि थी, जो मुझे इवेंट व्यूअर -> एप्लिकेशन लॉग में मिली। ऐसा इसलिए किया जा रहा था क्योंकि मेरे एप्लिकेशन पूल में वेबसाइट फ़ोल्डर स्थान तक पहुंच नहीं थी।

मैंने फ़ोल्डर में पहुंच के साथ एप्लिकेशन पूल पहचान को बदलकर इसे हल किया।


मैंने एज़्योर ऐप सर्विस के लिए एक नया .NET कोर 2.0 वेब ऐप प्रकाशित किया था और इस त्रुटि को मारा।

साइट को मारना:

HTTP त्रुटि 502.5 - इस समस्या के सामान्य कारण प्रक्रिया विफल: आवेदन प्रक्रिया शुरू करने में विफल रही आवेदन प्रक्रिया शुरू हुई लेकिन फिर आवेदन प्रक्रिया शुरू हुई लेकिन कॉन्फ़िगर किए गए पोर्ट पर सुनने में विफल रही

डीबगिंग: एज़्योर एप्लिकेशन इनसाइट्स और ऐप सेवा का उपयोग करना - उन्नत टूल (KUDU) टूल को देखते हुए - डीबग कंसोल - लॉगफ़ाइल्स फ़ोल्डर के इवेंटॉग्लॉग। xml में लॉग पंक्ति थी:

भौतिक रूट 'D: \ home \ site \ wwwroot \' के साथ आवेदन 'MACHINE / WEBROOT / APPHOST / xxxx' कमांडलाइन 'dotnet। \ WebApp.dll', ErrorCode = 0x80004005: 8000808c के साथ प्रक्रिया शुरू करने में विफल रहा।

<Provider Name="IIS AspNetCore Module"/>
<EventID>1000</EventID>
<Level>1</Level>
<Task>0</Task>
<EventData>
<Data>Application 'MACHINE/WEBROOT/APPHOST/xxxx' with physical root 'D:\home\site\wwwroot\' failed to start process with commandline 'dotnet .\WebApp.dll', ErrorCode = '0x80004005 : 8000808c.</Data>
</EventData>
</Event>

उपाय

यह उत्तर: azure में wwwroot फ़ोल्डर को हटाना और VS से फिर से प्रकाशित करना, शुरू में एक विरासत कोर 1.1 नहीं होने के बावजूद मेरे लिए काम किया।

एप्लिकेशन के भीतर एज़्योर कंसोल लॉन्च करें और wwwroot फ़ोल्डर की सामग्री को हटा दें और फिर पुन: डिज़ाइन करें।

RMDIR wwwroot /S /Q

इसके बाद का परीक्षण परीक्षण के लिए बहुत उपयोगी था और यह तब काम करता है जब पहचान के बाद काम करता है, फिर आपको त्रुटियों को खोजने की आवश्यकता होती है। https://docs.microsoft.com/en-us/aspnet/core/tutorials/publish-to-azure-webapp-using-vs





kestrel-http-server