iis - 为什么我通过 Visual Studio 2017 (15.7.3) 开始调试时会创建 IIS 10 应用程序池?
问题描述
编辑 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”应用程序池。此应用程序池配置如下:
- .Net CLR 版本:无托管代码
- 托管管道模式:集成
- 身份:ApplicationPoolIdentity
为了在 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”(然后是“v1 AppPool 2”等等)的新 IIS 应用程序池,并且“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上。
推荐阅读
- android-studio - 如何解决android studio中的release.json文件打开错误?
- java - Java:将 / 替换为 \\/
- react-native - 在 react-native-maps 中旋转覆盖
- scala - 不合理的模式匹配可能不是详尽的警告
- swiftui - onHover 没有响应 onHover 动作
- python - 如何使用循环同时影响多个数据帧
- javascript - 如何修复在 HTML、CSS、JS 中执行 JS 脚本后悬停不起作用?
- google-cloud-platform - Google Cloud Pub/Sub - 捕获发送到死信主题的消息的消息传递失败原因
- java - 在 Spring Boot 应用程序中实例化 @Service @Transactional 类的多个 bean
- ruby-on-rails - Puma 的表现没有优于 Unicorn(Rails 5.0 应用程序)——这正常吗?