为什么当我通过 Visual Studio 2017 (15.7.3) 开始调试时会创建 IIS 10 应用程序池?

Why an IIS 10 Application pool is created when I start debug through Visual Studio 2017 (15.7.3)?

编辑 1:我在使用相同配置的 ASP NET Core 2.0 应用程序中遇到了同样的问题,所以这排除了框架本身。下一个潜在的罪魁祸首:.NET Core 2.1 SDK (v2.1.300) 错误的 Visual Studio 更新 (15.7.3)。


当我调试 API.

时,IIS 10 和 ASP NET Core 2.1.0 出现一个奇怪的问题

我有一个 IIS 网站“api.local”和一个 ASP NET Core 2.0 应用程序“v1” " 在里面。

"v1" 应用程序配置为使用我创建网站时生成的 "api.local" 应用程序池。此应用程序池配置如下:

为了在Visual Studio 2017(15.7.3)中进行调试,我使用了下面的launchSettings.json

{
    "iisSettings": {
        "windowsAuthentication": false,
        "anonymousAuthentication": true,
        "iis": {
            "applicationUrl": "https://api.local/v1",
            "sslPort": 0
        }
    },
    "profiles": {
        "IIS": {
            "commandName": "IIS",
            "environmentVariables": {
                "ASPNETCORE_ENVIRONMENT": "Development"
            },
            "launchBrowser": true,
            "launchUrl": "graphiql/"
        }
   } 
}

一切正常。


现在,每次我开始调试时,都会创建一个名为 "v1 AppPool" 的新 IIS 应用程序池(然后是 "v1 AppPool 2" 等等)和"v1" 网站配置更改为使用这个新创建的 IIS 应用程序池。

我不确定从什么时候开始,但我认为它是在我将以下 nuget 包更新到 2.1.0 版本后开始发生的:

<PackageReference Include="Microsoft.AspNetCore.Authorization" Version="2.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="2.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Localization" Version="2.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="2.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="2.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Server.Kestrel.Https" Version="2.1.0" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.0" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.1.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.AzureKeyVault" Version="2.1.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.1.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Configuration" Version="2.1.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.1.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.1.0" />
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />

作为参考,这是我的 WebHostBuilder 初始化:

public static IWebHost BuildWebHost(string[] args) =>
       new WebHostBuilder()
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .ConfigureLogging((hostingContext, logging) =>
            {
                if (hostingContext.HostingEnvironment.IsDevelopment())
                {
                    logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
                    logging.AddConsole();
                    logging.AddDebug();
                }
            })
            .UseIISIntegration()
            .UseDefaultServiceProvider((context, options) =>
            {
                options.ValidateScopes = context.HostingEnvironment.IsDevelopment();
            })
            .UseStartup<Startup>()
            .Build();

有人知道我可以做些什么来解决这个问题吗?

我没有很好的答案。我遇到了与您描述的相同的问题。我将我的 VS 更新到 15.8.1,问题停止了。所以我认为问题出在 VS 上。