Kesalahan HTTP 500,35 - Beberapa Aplikasi Dalam Proses ANCM dalam Proses yang sama ASP.NET Core 3

34

Mulai pagi ini tanpa ada perubahan pada kode proyek, API Web yang sangat sederhana, satu controller dan 3 metode, dengan Swagger, itu tidak memulai lagi dan saya mendapatkan kesalahan:

Kesalahan HTTP 500,35 - Beberapa Aplikasi Dalam Proses ANCM dalam Proses yang sama

Penampil acara melaporkan pesan yang paling tidak berguna:

IIS Express AspNetCore Module V2: Gagal memulai aplikasi '/ LM / W3SVC / 2 / ROOT / docs', ErrorCode '0x80004005'.

Mulai ulang sistem beberapa kali.

Saya menggunakan Visual Studio 2019, aplikasi berhasil dikompilasi dan beberapa menit yang lalu berfungsi dengan baik. Tidak ada perangkat lunak baru yang diinstal, tidak ada paket yang ditambahkan. Mencoba juga membersihkan dan membangun kembali.

Saya baru saja memodifikasi komentar suatu metode. Jelas saya sudah mencoba juga untuk mengembalikan komentar sebelumnya tetapi saya selalu mendapatkan pesan yang sama.

Apa yang dapat saya?

Apakah core net masih terlalu tidak stabil untuk digunakan secara profesional?

MEMPERBARUI

Kode yang sama diluncurkan dari versi yang sama dari Visual Studio tetapi di PC lain berjalan dengan baik.

PEMBARUAN 2

Di bawah kode aplikasi:

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

Berikut ini adalah 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"
      }
    }
  }
}

tetapi mengatasi proyek pada PC lain dengan versi Visual Studio yang sama berfungsi dengan baik, jadi sepertinya itu adalah bug konfigurasi dalam properti .NET Core atau VIsual Studio ...

Giox
sumber
1
.NET Core sedang digunakan dalam produksi oleh banyak pengembang, termasuk Microsoft sendiri. Ini sangat stabil. Masalahnya ada di pihak Anda. Namun, tidak ada cukup di sini untuk membantu Anda. Periksa panduan pemecahan masalah dalam dokumen.
Chris Pratt
Saya mendapatkan kesalahan yang sama. Apakah Anda menggunakan web.config?
Marcel
@Marcel no Saya tidak menggunakannya
Giox
1
Saya lakukan, saya memperbaiki tambang dengan mengubah AspNetCoreModuleV2 menjadi AspNetCoreModule, di web.config.
Marcel
2
Anda perlu meninjau file konfigurasi aktual yang digunakan oleh VS / IIS Express untuk melihat apakah secara tidak sengaja dua aplikasi .NET Core pergi ke kumpulan yang sama. Model dalam proses tidak dapat mendukung hal itu.
Lex Li

Jawaban:

50

Saat ini bug di VS2019 - (4 Nov 2019)

1.) Tutup solusi Anda

2.) Hapus applicationhost.configdalam folder .vs atau hapus seluruh .vsfolder

The .vsfolder di samping file solusi Anda biasanya.

masukkan deskripsi gambar di sini

3.) Mulai ulang solusi Anda lagi

Legenda
sumber
Terima kasih, ini menghemat kerumitan menuangkan applicationhost.config.
CINCHAPPS
1
Memperbaikinya untukku. Ini sepertinya memperbaiki banyak masalah serupa ...
Rob L
Ini yang bekerja untuk saya. Sekali lagi masalah saya adalah saat debugging.
Abi P
1
Pahlawanku! Ini telah mengganggu saya selama berhari-hari!
Godrules500
Ini pasti berhasil :)
Amit Philips
28

Terima kasih kepada @Lex Li, dia telah memberikan saya solusinya.

Masalahnya ada di applicationhost.config, file metabase yang berisi semua pengaturan untuk peluncuran IISExpress oleh Visual Studio untuk menjalankan aplikasi web Anda.

Untuk Visual Studio 2019, file ini terletak di

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

Untuk versi lain periksa posting ini: Di mana file konfigurasi / metabase IIS Express ditemukan?

di bawah bagian saya memiliki yang berikut:

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

Di mana ada beberapa pengaturan aneh yang didefinisikan oleh

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

yang sudah pasti ditambahkan ketika saya sudah mencoba menetapkan folder start sebagai path / docs.

Mengomentari pengaturan ini dan satu lagi di akhir file yang terkait dengan jalur ini telah menyelesaikan masalah.

Giox
sumber
5
Anda adalah penyelamat! +1 Saya baru saja menghapus folder .vs untuk proyek saya dan sekarang berfungsi (baik folder untuk solusi maupun proyek) Terima kasih
tscissors
1
Saya memiliki masalah yang sama dan memperbaikinya, namun, saya perhatikan bahwa entri kedua ditambahkan secara otomatis oleh VS ketika saya memodifikasi properti "applicationUrl" di bawah iisExpress di launchSettings.json. Tidak yakin mengapa ini akan terjadi.
Richie
@ Richie sepertinya itu bug dengan VS. Itu tidak menghapus aplikasi yang lebih lama ketika Anda mengubah URL, yang seharusnya ketika aplikasi berjalan dalam proses. Ada laporan di sini: developercommunity.visualstudio.com/content/problem/699245/… . Mari kita lihat apakah itu tidak ditutup sebagai Prioritas Rendah.
andre_ss6
18

Saya mendapat kesalahan yang sama ketika saya melakukan hal berikut:

  1. Menerbitkan dua situs web inti asp.net terpisah
  2. Di IIS, dibuat dua situs web di bawah "Situs Web Default", masing-masing memiliki jalur fisik diatur ke masing-masing folder terbitkan di (1) masing-masing.
  3. Sekarang, di mana pun dari situs yang saya buka pertama berfungsi, dan yang kedua memberikan kesalahan itu.

Masalah:

Karena kedua situs saya berada di bawah "Situs Web Default", keduanya menggunakan DefaultAppPool, yang merupakan penyebab kesalahan ini. Kesalahan yang sama terjadi ketika situs tidak di bawah "Situs Web Default" tetapi menggunakan kumpulan aplikasi yang sama.

Larutan:

Seperti disebutkan dalam dokumen ,

Untuk memperbaiki kesalahan ini, jalankan aplikasi di kumpulan aplikasi IIS yang terpisah.

bagi saya masalah ini diselesaikan ketika saya mulai menggunakan kumpulan aplikasi terpisah untuk setiap situs.

Sнаđошƒаӽ
sumber
2
Itu berhasil, bukan yang lain. Terima kasih.
Erdogan