Asp.net-Core-3.0

應用程序在 IIS 程序內執行,但未配置為使用 IIS 伺服器 .NET Core 3.0

  • September 24, 2019

我已將我們的應用程序從 .NET Core 2.2 遷移到 3.0 版。實際上,我從頭開始在 3.0 中創建了新應用程序,然後複製了原始碼文件。一切看起來都很棒,但是當我嘗試在 Visual Studio 2019 中執行應用程序時,出現異常:

應用程序在 IIS 程序內執行,但未配置為使用 IIS 伺服器

這是我的 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().Run(); 它在 .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>();
          });

引用自:https://stackoverflow.com/questions/58080353