HTTP Hatası 500.35 - ANCM Aynı İşlemde Birden Çok İşlem İçi Uygulama ASP.NET Core 3


34

Bu sabah projenin kodunda herhangi bir değişiklik yapmadan, çok basit bir Web API, bir kontrolör ve 3 yöntem, Swagger ile artık başlamıyor ve hatayı alıyorum:

HTTP Hatası 500.35 - ANCM Aynı İşlemde Birden Çok İşlem İçi Uygulama

Olay görüntüleyici en işe yaramaz mesajı bildirir:

IIS Express AspNetCore Modülü V2: '/ LM / W3SVC / 2 / ROOT / docs' uygulaması başlatılamadı, '0x80004005' Hata Kodu.

Sistemi birkaç kez yeniden başlattı.

Visual Studio 2019 kullanıyorum, uygulama başarıyla derlendi ve birkaç dakika önce iyi çalıştı. Yüklü yeni yazılım yok, paket eklenmedi. Ayrıca temiz ve yeniden inşa çalıştı.

Bir yöntemin yorumunu yeni değiştirdim. Açıkçası önceki yorumu da geri yüklemeye çalıştım ama hep aynı mesajı alıyorum.

Ne yapabilirim?

Ağ çekirdeği hala profesyonel olarak kullanılamayacak kadar kararsız mı?

GÜNCELLEME

Aynı kod Visual Studio'nun aynı sürümünden başlatıldı, ancak başka bir bilgisayarda düzgün çalışıyor.

GÜNCELLEME 2

Uygulama kodunun altında:

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");
            });
        }
    }
}

İşte launchsettings.json:

{
  "$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"
      }
    }
  }
}

ancak projeyi aynı Visual Studio sürümüne sahip başka bir PC'ye yazmak iyi çalışıyor, bu nedenle .NET Core veya VIsual Studio özelliğinde bir yapılandırma hatası gibi görünüyor ...


1
.NET Core, Microsoft'un kendisi de dahil olmak üzere birçok geliştirici tarafından üretimde kullanılmaktadır. Mükemmel kararlıdır. Sorun senin tarafında. Ancak burada size yardım etmek için yeterli değil. Dokümanlardaki sorun giderme kılavuzunu kontrol edin.
Chris Pratt

Aynı hatayı alıyorum. Bir web.config kullanıyor musunuz?
Marcel

@Marcel hayır Kullanmıyorum
Giox

1
Yaparım, AspNetCoreModuleV2'yi web.config içinde AspNetCoreModule olarak değiştirerek mayın sabitledim.
Marcel

2
Yanlışlıkla iki .NET Core uygulamasının aynı havuza gidip gitmediğini görmek için VS / IIS Express tarafından kullanılan gerçek yapılandırma dosyasını gözden geçirmeniz gerekir. İşlem içi model bunu destekleyemez.
Lex Li

Yanıtlar:


50

Şu anda VS2019'da bir hata - (4 Kasım 2019)

1.) Çözümünüzü kapatın

2.)applicationhost.config Klasörü sil .vs veya tüm .vsklasörü sil

.vsKlasör genellikle çözüm dosyasının yanındadır.

resim açıklamasını buraya girin

3.) Çözümünüzü yeniden başlatın


Teşekkürler, bu applicationhost.config üzerine dökülme zahmetinden kurtarır.
CINCHAPPS

1
Benim için düzelttim. Bu benzer sorunları bir sürü düzeltmek gibi görünüyor ...
Rob L

Benim için çalışan bu. Yine benim sorunum hata ayıklama sırasında oldu.
Abi P

1
Benim kahramanım! Bu beni günlerce rahatsız etti!
Godrules500

Kesinlikle işe
yarar

28

@Lex Li sayesinde bana çözüm verdi.

Sorun, web uygulamanızı çalıştırmak için Visual Studio tarafından başlatılan tüm IISExpress ayarlarını içeren metahost dosyası olan applicationhost.config dosyasındaydı.

Visual Studio 2019 için bu dosya şurada bulunur:

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

Diğer sürüm için bu gönderiyi kontrol edin: IIS Express yapılandırma / metatabanı dosyası nerede bulunur?

bölümün altında ben vardı:

<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>

Tarafından tanımlanan bazı garip ayarların olduğu yerlerde

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

/ docs yolunu başlangıç ​​klasörü olarak ayarlamaya çalıştığımda kesinlikle eklendi.

Bu ayarı ve dosyanın sonundaki bu yolla ilgili başka bir ayarı yorumlamak sorunu çözdü.


5
Sen cankurtaransın! +1 Projem için sadece .vs klasörlerini sildim ve şimdi çalışıyor (çözüm ve proje için her iki klasör) Teşekkürler
tscissors

1
Ben aynı sorunu vardı ve bu düzeltti, ancak ben launchSettings.json iisExpress altında "applicationUrl" özelliği değiştirdiğinizde VS tarafından ikinci giriş otomatik olarak eklendi fark ettim. Bunun neden olacağından emin değilim.
Richie

@Richie, VS ile ilgili bir hata gibi görünüyor. URL'yi değiştirdiğinizde eski uygulamalar silinmez; bu, uygulama işlemede çalıştırıldığında olması gerekir. Burada bir rapor var: developercommunity.visualstudio.com/content/problem/699245/… . Bakalım daha düşük öncelikli olarak kapalı değil mi.
andre_ss6

18

Aşağıdakileri yaptığımda aynı hatayı aldım:

  1. İki ayrı asp.net çekirdek web sitesi yayınladı
  2. IIS'de, "Varsayılan Web Sitesi" altında, her biri sırasıyla (1) 'deki yayımlama klasörlerinin her birine fiziksel yol ayarlanmış iki web sitesi oluşturuldu.
  3. Şimdi açtığım sitelerden hangisi önce çalışıyor, ikincisi bu hatayı veriyor.

Sorun:

Her iki sitem de "Varsayılan Web Sitesi" altında olduğundan ikisi de bu hatanın nedeni olan DefaultAppPool kullanıyor. Aynı hata, siteler "Varsayılan Web Sitesi" altında değilse de aynı uygulama havuzunu kullandığında oluşur.

Çözüm:

Dokümanlarda belirtildiği gibi ,

Bu hatayı gidermek için uygulamaları ayrı IIS uygulama havuzlarında çalıştırın.

benim için her site için ayrı uygulama havuzları kullanmaya başladığımda bu sorun çözüldü.


2
Diğerleri değil, çalıştı. Teşekkürler.
Erdoğan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.