HTTP Error 500.35 - ANCM หลายแอพพลิเคชั่นระหว่างดำเนินการใน Process ASP.NET Core 3 เดียวกัน


34

เมื่อเช้านี้โดยไม่มีการเปลี่ยนแปลงใด ๆ กับรหัสของโครงการเว็บ API ที่ง่ายมากหนึ่งคอนโทรลเลอร์และ 3 วิธีด้วย Swagger มันไม่เริ่มทำงานอีกต่อไปและฉันได้รับข้อผิดพลาด:

HTTP Error 500.35 - ANCM หลายแอปพลิเคชั่นระหว่างดำเนินการในกระบวนการเดียวกัน

ผู้ดูเหตุการณ์รายงานข้อความที่ไร้ประโยชน์มากที่สุด:

IIS Express AspNetCore โมดูล V2: ไม่สามารถเริ่มแอปพลิเคชัน '/ LM / W3SVC / 2 / ROOT / docs', ErrorCode '0x80004005'

รีสตาร์ทระบบหลายครั้ง

ฉันใช้ Visual Studio 2019 แอปพลิเคชันรวบรวมได้สำเร็จและไม่กี่นาทีที่ผ่านมาก็ทำงานได้ดี ไม่มีการติดตั้งซอฟต์แวร์ใหม่ไม่มีการเพิ่มแพ็คเกจ พยายามทำความสะอาดและสร้างใหม่

ฉันเพิ่งแก้ไขความคิดเห็นของวิธีการ แน่นอนฉันพยายามกู้คืนความคิดเห็นก่อนหน้า แต่ฉันได้รับข้อความเดิมเสมอ

ฉันจะทำอย่างไร

แกนเน็ตยังคงไม่เสถียรที่จะใช้อย่างมืออาชีพหรือไม่?

UPDATE

รหัสเดียวกันเปิดตัวจาก Visual Studio รุ่นเดียวกัน แต่ในพีซีเครื่องอื่นทำงานอย่างถูกต้อง

อัพเดท 2

ด้านล่างรหัสของแอปพลิเคชัน:

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

นี่คือ 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"
      }
    }
  }
}

แต่การรับมือกับโครงการบนพีซีเครื่องอื่นที่มี Visual Studio รุ่นเดียวกันนั้นทำงานได้ดีดังนั้นดูเหมือนว่าจะเป็นข้อผิดพลาดในการกำหนดค่าในคุณสมบัติ. NET Core หรือ VIsual Studio ...


1
.NET Core ถูกใช้ในการผลิตโดยนักพัฒนาหลายคนรวมถึง Microsoft เอง มันมีเสถียรภาพอย่างสมบูรณ์แบบ ปัญหาเกิดขึ้นกับคุณ อย่างไรก็ตามที่นี่มีไม่เพียงพอที่จะช่วยคุณ ตรวจสอบคู่มือการแก้ไขปัญหาในเอกสาร
Chris Pratt

ฉันได้รับข้อผิดพลาดเดียวกัน คุณใช้ web.config อยู่หรือไม่?
Marcel

@ มาร์เซลไม่ฉันไม่ได้ใช้มัน
Giox

1
ฉันทำแล้วฉันแก้ไขโดยการเปลี่ยน AspNetCoreModuleV2 เป็น AspNetCoreModule ใน web.config
Marcel

2
คุณต้องตรวจสอบไฟล์การกำหนดค่าจริงที่ใช้โดย VS / IIS Express เพื่อดูว่ามีข้อผิดพลาดสองแอพ. NET Core หรือไม่ไปที่กลุ่มเดียวกัน โมเดลระหว่างดำเนินการไม่สามารถรองรับได้
Lex Li

คำตอบ:


50

ปัจจุบันเป็นข้อผิดพลาดใน VS2019 - (4 พฤศจิกายน 2019)

1. )ปิดโซลูชันของคุณ

2. )ลบapplicationhost.configในโฟลเดอร์.vs หรือลบทั้ง.vsโฟลเดอร์

.vsโฟลเดอร์อยู่ติดกับแฟ้มโซลูชันของคุณมักจะ

ป้อนคำอธิบายรูปภาพที่นี่

3. )รีสตาร์ทโซลูชันของคุณอีกครั้ง


ขอบคุณสิ่งนี้จะช่วยลดความยุ่งยากในการเทผ่าน applicationhost.config
CINCHAPPS

1
แก้ไขให้ฉัน นี้ดูเหมือนว่าจะแก้ไขปัญหามากเหมือนกัน ...
ร็อบ L

นี่คือสิ่งที่เหมาะกับฉัน ปัญหาของฉันอีกครั้งคือในระหว่างการดีบัก
Abi P

1
ผู้กล้าของฉัน! สิ่งนี้ได้รบกวนฉันมาหลายวันแล้ว!
Godrules500

วิธีนี้ใช้ได้ผลแน่นอน :)
Amit Philips

28

ขอบคุณ@Lex Liเขาให้วิธีแก้ปัญหาแก่ฉัน

ปัญหาอยู่ใน applicationhost.config ไฟล์ metabase ที่มีการตั้งค่าทั้งหมดสำหรับการเปิดตัว IISExpress โดย Visual Studio เพื่อเรียกใช้โปรแกรมประยุกต์บนเว็บของคุณ

สำหรับ Visual Studio 2019 ไฟล์นี้อยู่ใน

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

สำหรับรุ่นอื่น ๆ ให้ตรวจสอบโพสต์นี้: จะพบไฟล์การกำหนดค่า / metabase IIS Express ที่ไหน?

ภายใต้ส่วนฉันมีดังต่อไปนี้:

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

ที่เพิ่มอย่างแน่นอนเมื่อฉันพยายามตั้งเป็นโฟลเดอร์เริ่มต้นเส้นทาง / docs

การแสดงความคิดเห็นการตั้งค่านี้และการตั้งค่าอื่นที่ส่วนท้ายของไฟล์ที่เกี่ยวข้องกับเส้นทางนี้ได้แก้ไขปัญหาแล้ว


5
คุณเป็นผู้ช่วยชีวิต! +1 ฉันเพิ่งลบ. vs โฟลเดอร์สำหรับโครงการของฉันและตอนนี้ก็ใช้งานได้ (ทั้งโฟลเดอร์สำหรับโซลูชันและโครงการ) ขอบคุณ
tscissors

1
ฉันมีปัญหาเดียวกันและสิ่งนี้แก้ไขได้ แต่ฉันสังเกตเห็นว่ารายการที่สองถูกเพิ่มโดยอัตโนมัติโดย VS เมื่อฉันแก้ไขคุณสมบัติ "applicationUrl" ภายใต้ iisExpress ใน launchSettings.json ไม่แน่ใจว่าทำไมสิ่งนี้จะเกิดขึ้น
Richie

@ Richie ดูเหมือนว่าเป็นข้อผิดพลาดกับ VS มันไม่ได้เป็นการลบแอพที่เก่ากว่าเมื่อคุณเปลี่ยน URL ซึ่งควรจะเป็นเมื่อแอพทำงาน inprocess มีรายงานที่นี่: developercommunity.visualstudio.com/content/problem/699245/... เรามาดูกันว่ามันจะไม่ปิดเหมือนลำดับความสำคัญที่ต่ำกว่าหรือไม่
andre_ss6

18

ฉันได้รับข้อผิดพลาดเดียวกันเมื่อฉันทำสิ่งต่อไปนี้:

  1. เผยแพร่เว็บไซต์หลัก asp.net สองแห่งแยกกัน
  2. ใน IIS สร้างเว็บไซต์สองแห่งภายใต้ "เว็บไซต์เริ่มต้น" โดยแต่ละเส้นทางจะมีการตั้งค่าฟิสิคัลให้กับแต่ละโฟลเดอร์เผยแพร่ใน (1) ตามลำดับ
  3. ตอนนี้เว็บไซต์ใดที่ฉันเปิดใช้งานครั้งแรกและไซต์ที่สองให้ข้อผิดพลาดนั้น

ปัญหา:

เนื่องจากทั้งสองเว็บไซต์ของฉันอยู่ภายใต้ "เว็บไซต์เริ่มต้น" พวกเขาทั้งคู่ใช้ DefaultAppPool ซึ่งเป็นสาเหตุของข้อผิดพลาดนี้ ข้อผิดพลาดเดียวกันเกิดขึ้นเมื่อไซต์ไม่อยู่ภายใต้ "เว็บไซต์เริ่มต้น" แต่ใช้แอพกลุ่มเดียวกัน

สารละลาย:

เป็นที่กล่าวถึงในเอกสาร ,

เมื่อต้องการแก้ไขข้อผิดพลาดนี้ให้เรียกใช้แอปในพูลแอปพลิเคชัน IIS แยก

สำหรับฉันปัญหานี้ได้รับการแก้ไขเมื่อฉันเริ่มใช้แอพพูลแยกต่างหากสำหรับแต่ละไซต์


2
มันใช้ได้ผลไม่ใช่คนอื่น ขอบคุณ
Erdogan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.