【问题标题】:Why .NET Core Web Application initially boots as Console app为什么 .NET Core Web 应用程序最初作为控制台应用程序启动
【发布时间】:2021-03-20 16:02:58
【问题描述】:

下面是Program.cs文件,里面有Main(),主要方法是.NET Core中的入口点。为什么 .NET Core Web 应用程序有 main 方法,为什么它最初作为控制台应用程序启动?

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

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

【问题讨论】:

  • 因为它一个控制台应用程序。所有非 WinForms/WPF netcore 项目都是(保存 Blazor 客户端)
  • 你使用哪个 IDE?
  • @pinkfloydx33 它仍然是一个 Web 应用程序,它最初是作为控制台启动的,我的问题是为什么它作为一个控制台启动,即使它是一个 Web 应用程序
  • @RafaelBiz Visual Studio 2019
  • @VishalD 。 . .也许您对这里的web 应用程序 一词感到困惑。您认为什么是 Web 应用程序?在技​​术方面,ASP.NET Web 应用程序是一个后端/服务器应用程序,它负责呈现前端浏览器 (HTML/CSS/JavaScript) 或 API (XML、JSON) 内容。您可以配置和编译 ASP.NET Web 应用程序以在 IIS 或其他 Web 服务器中运行,但对于 .NET Core,它通常是一个嵌入 Kestrel 引擎(或其他合适的 Web 主机)的控制台应用程序,因此它可以独立于网络服务器。

标签: c# .net-core asp.net-core-webapi asp.net-core-3.1


【解决方案1】:

ASP.NET Core Web 应用程序实际上是一个控制台项目,它从 Program 类中的入口点public static void Main() 开始执行,我们可以在其中为 Web 应用程序创建一个宿主。主机负责应用启动和生命周期管理。主机至少配置一个服务器和一个请求处理管道。主机还可以设置日志记录、依赖注入和配置。更多详细信息,您可以参考以下文章:

.NET Generic Host in ASP.NET Core

ASP.NET Core Web Host

What Is Startup Class And Program.cs In ASP.NET Core

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 2010-10-30
    • 1970-01-01
    相关资源
    最近更新 更多