应用程序在 IIS 进程内运行,但未配置为使用 IIS 服务器.NET Core 3.0

我已经将我们的应用程序从。NET Core 2.2到3.0版。实际上,我在3.0中从头开始创建了新的应用程序,然后复制了源代码文件。一切看起来都很棒,但是当我尝试在 VisualStudio2019中运行应用程序时,出现了异常:

应用程序正在 IIS 进程内运行,但未配置为使用 IIS 服务器

这是我的程序

public static class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}


public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseContentRoot(Directory.GetCurrentDirectory());
webBuilder.UseKestrel();
webBuilder.UseIISIntegration();
webBuilder.UseStartup<Startup>();
});
}

错误发生在这一行: CreateHostBuilder (args) . Build () . Run () ; 它在里面工作得很好。NET Core 2.2,但它不想作为3.0运行。我找不到其他应该做的事情。Startup.cs 有什么新东西吗?我不知道。

62600 次浏览

我在阅读 https://learn.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.0&tabs=visual-studio文档时也碰到了这个问题

对于你的情况,我已经检查和代码下面将工作,与调用 webBuilder.UseKestrel()删除。

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseContentRoot(Directory.GetCurrentDirectory());
webBuilder.UseIISIntegration();
webBuilder.UseStartup<Startup>();
});

在我的例子中,由于粗心,我在 VisualStudio 中运行了错误的配置文件(IISExpress)。

enter image description here

我有相同的错误,然后修复我的问题,我需要改变 webBuilder.UseKestrel();ConfigureKestrel(serverOptions => {})

返回文章页面我的 Program.cs:

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseKestrel();
webBuilder.UseStartup<Startup>();
});

我的 Program.cs修好了:

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(serverOptions =>
{
})
.UseStartup<Startup>();
});

正如@flam3所建议的,您需要用正确的命令选择一个配置文件。

打开解决方案资源管理器-> 您的项目名称-> 属性-> launchSettings.json 文件。

键 commandName 的值应该是“ Project”,而不是“ IIS Express”

所以选择名为 Elsa 的配置文件。样本。用户注册。网络(就我而言)。请看下面。或者您可以尝试将 IISExpress 更改为 Project on line no 19

Launch Profile

用于 VisualStudio2019和2022

转到 API 项目属性: 调试标签-> 常规-> 点击“打开调试启动配置文件 UI”

enter image description here

向下滚动到托管模型并选择“离开进程”

enter image description here

然后,您就可以毫无问题地运行应用程序了。