应用程序在 IIS 进程内 运行,但未配置为使用 IIS 服务器 .NET Core 3.0
Application is running inside IIS process but is not configured to use IIS server .NET Core 3.0
我已将我们的应用程序从 .NET Core 2.2 迁移到 3.0 版。实际上,我是从头开始在 3.0 中创建新应用程序,然后复制源代码文件。一切看起来都不错,但是当我尝试 运行 2019 年 Visual Studio 中的应用程序时,出现异常:
Application is running inside IIS process but is not configured to use IIS server
这是我的Program.cs
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().运行();
它在 .NET Core 2.2 中运行良好,但它不想 运行 作为 3.0。我找不到其他应该做的事情。 Startup.cs 有什么新东西?我不知道。
我在遵循文档时也遇到了这个问题 https://docs.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>();
});
在我的例子中,我 运行 错误的配置文件 (IIS Express) Visual Studio 由于粗心。
我遇到了同样的错误然后为了解决我的问题我需要将 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 所建议的,您需要select 具有正确命令的配置文件。
打开解决方案资源管理器 -> 您的项目名称 -> 属性 -> launchSettings.json 文件。
键 commandName 的值应该是 'Project' 而不是 'IIS Express'
所以 select 配置文件名称为 Elsa.Samples.UserRegistration.Web(在我的例子中)。见下文。或者您可以尝试将 IISExpress 更改为 Project on line no 19
Visual Studio 2019 年和 2022 年
转到 API 项目属性:调试选项卡 -> 常规 -> 点击“打开调试启动配置文件 UI”
向下滚动到托管模型和Select“进程外”
然后,您将能够运行您的申请没有任何问题。
我已将我们的应用程序从 .NET Core 2.2 迁移到 3.0 版。实际上,我是从头开始在 3.0 中创建新应用程序,然后复制源代码文件。一切看起来都不错,但是当我尝试 运行 2019 年 Visual Studio 中的应用程序时,出现异常:
Application is running inside IIS process but is not configured to use IIS server
这是我的Program.cs
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().运行(); 它在 .NET Core 2.2 中运行良好,但它不想 运行 作为 3.0。我找不到其他应该做的事情。 Startup.cs 有什么新东西?我不知道。
我在遵循文档时也遇到了这个问题 https://docs.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>();
});
在我的例子中,我 运行 错误的配置文件 (IIS Express) Visual Studio 由于粗心。
我遇到了同样的错误然后为了解决我的问题我需要将 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 所建议的,您需要select 具有正确命令的配置文件。
打开解决方案资源管理器 -> 您的项目名称 -> 属性 -> launchSettings.json 文件。
键 commandName 的值应该是 'Project' 而不是 'IIS Express'
所以 select 配置文件名称为 Elsa.Samples.UserRegistration.Web(在我的例子中)。见下文。或者您可以尝试将 IISExpress 更改为 Project on line no 19
Visual Studio 2019 年和 2022 年
转到 API 项目属性:调试选项卡 -> 常规 -> 点击“打开调试启动配置文件 UI”
向下滚动到托管模型和Select“进程外”
然后,您将能够运行您的申请没有任何问题。