HTTP त्रुटि 500.35 - एक ही प्रक्रिया ASP.NET Core 3 में ANCM एकाधिक इन-प्रोसेस अनुप्रयोग


34

आज सुबह से परियोजना के कोड में कोई बदलाव किए बिना, एक बहुत ही सरल वेब एपीआई, एक नियंत्रक और 3 तरीके, स्वैगर के साथ, यह अब शुरू नहीं होता है और मुझे त्रुटि मिलती है:

HTTP त्रुटि 500.35 - एक ही प्रक्रिया में एएनसीएम एकाधिक इन-प्रोसेस अनुप्रयोग

इवेंट व्यूअर ने सबसे बेकार संदेश की रिपोर्ट की:

IIS एक्सप्रेस AspNetCore मॉड्यूल V2: अनुप्रयोग '/ LM / W3SVC / 2 / ROOT / डॉक्स' शुरू करने में विफल रहा, ErrorCode '0x80004005'।

कई बार सिस्टम को फिर से शुरू किया।

मैं विजुअल स्टूडियो 2019 का उपयोग कर रहा हूं, एप्लिकेशन सफलतापूर्वक संकलन और कुछ मिनट पहले यह ठीक काम कर रहा था। कोई नया सॉफ़्टवेयर स्थापित नहीं किया गया है, कोई पैकेज नहीं जोड़ा गया है। साफ और पुनर्निर्माण का भी प्रयास किया।

मैंने अभी एक विधि की टिप्पणी को संशोधित किया है। जाहिर है मैंने पिछली टिप्पणी को बहाल करने की भी कोशिश की है लेकिन मुझे हमेशा एक ही संदेश मिलता है।

मैं क्या कर सकता हूँ?

क्या नेट कोर अभी भी पेशेवर उपयोग किए जाने के लिए अस्थिर नहीं है?

अपडेट करें

एक ही कोड विजुअल स्टूडियो के एक ही संस्करण से लॉन्च किया गया लेकिन दूसरे पीसी में ठीक से चलता है।

अद्यतन २

आवेदन के कोड के नीचे:

startup.cs

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Hosting;
using Microsoft.OpenApi.Models;
using System;
using System.IO;
using System.Reflection;

namespace WFP_GeoAPIs
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        public void ConfigureServices(IServiceCollection services)
        {

            services.AddControllers(); 
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo() { Title = "Geographic APIs", Version = "v1.0.0" });
                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.XML";
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);    
                c.IncludeXmlComments(xmlPath);
            });
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseStaticFiles(new StaticFileOptions
            {
                FileProvider = new PhysicalFileProvider(
                 Path.Combine(Directory.GetCurrentDirectory(), "swagger-ui")),
                RequestPath = "/swagger-ui"
            });

            app.UseHttpsRedirection();
            app.UseRouting();
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });

            app.UseSwagger();    
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "GeoAPIs Ver 1.0.0");
                c.RoutePrefix = "docs";
                c.InjectStylesheet("/swagger-ui/custom.css");
            });
        }
    }
}

यहाँ लॉन्च है।

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": {
      "applicationUrl": "http://localhost:51319",
      "sslPort": 44345
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "docs",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "WFP_GeoAPIs": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "docs",
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

लेकिन एक ही विजुअल स्टूडियो संस्करण के साथ किसी अन्य पीसी पर प्रोजेक्ट को कॉपी करना ठीक काम करता है, इसलिए ऐसा लगता है कि .NET कोर या VIsual स्टूडियो संपत्ति में एक कॉन्फ़िगरेशन बग है ...


1
.NET कोर कई डेवलपर्स द्वारा उत्पादन में उपयोग में है, जिसमें स्वयं Microsoft भी शामिल है। यह पूरी तरह से स्थिर है। समस्या आपकी तरफ है। हालाँकि, आपकी सहायता के लिए यहाँ पर्याप्त नहीं है। डॉक्स में समस्या निवारण गाइड की जाँच करें।
क्रिस प्रैट

मुझे वही त्रुटि मिल रही है। क्या आप web.config का उपयोग कर रहे हैं?
मार्सेल

@ मार्सेल नहीं, मैं इसका उपयोग नहीं कर रहा हूं
13

1
मैं करता हूं, मैंने AspNetCoreModuleV2 को AspNetCoreModule में बदलकर, web.config में मेरा निश्चित कर दिया है।
मार्सेल

2
आपको वीएस / आईआईएस एक्सप्रेस द्वारा उपयोग की जाने वाली वास्तविक कॉन्फ़िगरेशन फ़ाइल की समीक्षा करने की आवश्यकता है, यह देखने के लिए कि क्या गलती से दो .NET कोर ऐप एक ही पूल में जाते हैं। इन-प्रोसेस मॉडल उस का समर्थन नहीं कर सकता है।
लेक्स ली

जवाबों:


50

यह वर्तमान में VS2019 में एक बग है - (4 नवंबर 2019)

1.) अपने समाधान को बंद करें

2.)applicationhost.config फ़ोल्डर में हटाएँ .vs या पूरे .vsफ़ोल्डर को हटा दें

.vsफ़ोल्डर अपने समाधान फ़ाइल आमतौर पर के बगल में है।

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

3.) अपने समाधान को फिर से शुरू करें


धन्यवाद, यह Applicationhost.config पर डालने की परेशानी से बचाता है।
CINCHAPPS 15

1
इसे मेरे लिए तय किया। यह बहुत सारे समान मुद्दों को ठीक करने के लिए लगता है ...
Rob L

यह वही है जिसने मेरे लिए काम किया। फिर से मेरा मुद्दा डिबगिंग के दौरान था।
अबी पी

1
मेरे हीरो! इसने मुझे बहुत दिनों तक परेशान किया है!
गॉड्रूल्स 500

यह निश्चित रूप से काम करता है :)
अमित फिलिप्स

28

धन्यवाद करने के लिए @Lex ली वह मुझे समाधान दे दी है।

यह समस्या Applicationhost.config में थी, मेटाबेस फ़ाइल में आपके वेब एप्लिकेशन को चलाने के लिए Visual Studio द्वारा IISExpress लॉन्च के लिए सभी सेटिंग्स हैं।

Visual Studio 2019 के लिए, यह फ़ाइल में स्थित है

$(solutionDir)\.vs\{projectName}\config\applicationhost.config

अन्य संस्करण के लिए इस पोस्ट की जाँच करें: IIS एक्सप्रेस कॉन्फ़िगरेशन / मेटाबेस फ़ाइल कहाँ पाई जाती है?

अनुभाग के तहत मेरे पास निम्नलिखित थे:

<sites>    
  <site name="WebSite1" id="1" serverAutoStart="true">
    <application path="/">
      <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
    </application>
    <bindings>
      <binding protocol="http" bindingInformation=":8080:localhost" />
    </bindings>
  </site>

  <site name="MyProjectName" id="2">
    <application path="/" applicationPool="MyProjectName AppPool">
      <virtualDirectory path="/" physicalPath="E:\Projects\MyProjectName" />
    </application>

   <application path="/docs" applicationPool="docs AppPool">
      <virtualDirectory path="/" physicalPath="E:\Projects\MyProjectName" />
    </application>

    <bindings>
      <binding protocol="http" bindingInformation="*:59386:localhost" />
      <binding protocol="https" bindingInformation="*:44345:localhost" />
    </bindings>
  </site>
  <siteDefaults>
    <!-- To enable logging, please change the below attribute "enabled" to "true" -->
    <logFile logFormat="W3C" directory="%AppData%\Microsoft\IISExpressLogs" enabled="false" />
    <traceFailedRequestsLogging directory="%AppData%\Microsoft" enabled="false" maxLogFileSizeKB="1024" />
  </siteDefaults>
  <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
  <virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>

जहां कुछ अजीब सेटिंग द्वारा परिभाषित किया गया है

<application path="/docs" applicationPool="docs AppPool">
   <virtualDirectory path="/" physicalPath="E:\Projects\MyProjectName" />
</application> 

जब मुझे फ़ोल्डर / डॉक्स पथ के रूप में सेट करने का प्रयास किया गया है तो निश्चित रूप से जोड़ा गया है।

इस सेटिंग के बारे में टिप्पणी करना और इस पथ से संबंधित फ़ाइल के अंत में एक अन्य ने समस्या हल कर दी है।


5
आप जीवनपर्यंत हैं! +1 मैंने बस अपने प्रोजेक्ट के लिए .vs फोल्डर को डिलीट कर दिया है और अब यह काम कर रहा है (सॉल्यूशन और प्रॉजेक्ट के लिए दोनों फोल्डर) धन्यवाद
tscreens

1
मेरे पास एक ही मुद्दा था और इसने इसे ठीक कर दिया था, हालांकि, मैंने देखा कि वीएस द्वारा दूसरी प्रविष्टि को स्वचालित रूप से जोड़ा गया था जब मैंने लॉन्चसेट्स.जॉन में आईसएक्सप्रेस के तहत "एप्लीकेशनयूएल" संपत्ति को संशोधित किया। यकीन नहीं होता कि ऐसा क्यों होगा।
रिची

@ रिची ऐसा लगता है कि वी.एस. के साथ एक बग है। जब आप URL बदलते हैं तो यह पुराने ऐप्स को डिलीट नहीं कर रहा है, जो कि ऐप के इनप्रोसेस चलने पर होना चाहिए। यहाँ एक रिपोर्ट है: developercommunity.visualstudio.com/content/problem/699245/… । देखते हैं कि क्या यह लोअर प्रायोरिटी के रूप में बंद नहीं है।
andre_ss6

18

निम्न कार्य करने पर मुझे वही त्रुटि मिली:

  1. दो अलग-अलग asp.net कोर वेबसाइट प्रकाशित
  2. IIS में, "डिफ़ॉल्ट वेब साइट" के तहत दो वेबसाइट बनाई गईं, जिनमें से प्रत्येक क्रमशः (1) में प्रकाशित फ़ोल्डरों में से प्रत्येक के लिए भौतिक पथ सेट है।
  3. अब मैं जो भी साइटें खोलता हूं, उनमें से पहला काम करता है, और दूसरा वह त्रुटि देता है।

मुसीबत:

चूंकि मेरी दोनों साइटें "डिफॉल्ट वेब साइट" के तहत हैं, वे दोनों डिफॉल्टऐपपूल का उपयोग कर रहे हैं, जो इस त्रुटि का कारण है। समान त्रुटि तब होती है जब साइटें "डिफ़ॉल्ट वेब साइट" के अंतर्गत नहीं होती हैं, लेकिन समान ऐप पूल का उपयोग करती हैं।

समाधान:

डॉक्स में बताया गया है ,

इस त्रुटि को ठीक करने के लिए, अलग-अलग IIS एप्लिकेशन पूल में एप्लिकेशन चलाएँ।

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


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