Application is running inside IIS process but is not configured to use IIS server .NET Core 3.0
asp.net Core-3.0asp.net Core-3.0 Problem Overview
I have migrated our application from .NET Core 2.2 to version 3.0. Actually I created the new application in 3.0 from scratch and then copied source code files. Everything looks great but when I try to run the application within Visual Studio 2019 I get the exception:
> Application is running inside IIS process but is not configured to use IIS server
Here is my 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>();
});
}
The error occurs at the line: CreateHostBuilder(args).Build().Run(); It worked fine in .NET Core 2.2 but it doesn't want to run as 3.0. I cannot find anything else that should be done. Something new in the Startup.cs? I don't know.
asp.net Core-3.0 Solutions
Solution 1 - asp.net Core-3.0
I also came across this issue while following the documentation https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.0&tabs=visual-studio
For your case I have checked and the code below will work, with the call to webBuilder.UseKestrel()
removed.
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseContentRoot(Directory.GetCurrentDirectory());
webBuilder.UseIISIntegration();
webBuilder.UseStartup<Startup>();
});
Solution 2 - asp.net Core-3.0
I had the same error then to fix my problem I needed to change webBuilder.UseKestrel();
to ConfigureKestrel(serverOptions => {})
My Program.cs
before:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseKestrel();
webBuilder.UseStartup<Startup>();
});
My Program.cs
fixed:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(serverOptions =>
{
})
.UseStartup<Startup>();
});
Solution 3 - asp.net Core-3.0
Solution 4 - asp.net Core-3.0
As @flam3 suggested, you need to select a profile with correct command.
Open Solution Explorer -> Your Project Name -> Properties -> launchSettings.json file.
The value of the key commandName should be 'Project' instead of 'IIS Express'
So select profile with the name Elsa.Samples.UserRegistration.Web(in my case). See below. Or you may try changing IISExpress to Project on line no 19