ZetCode

ASP.NET WebHost

最后修改于 2025 年 4 月 3 日

在本文中,我们将探讨 ASP.NET 8 中的 WebHost。WebHost 是 ASP.NET 应用程序的基础,提供重要的服务和配置。

ASP.NET WebHost 负责应用程序的启动、生命周期管理和托管环境配置。它负责设置服务器和请求处理管道。

基本定义

ASP.NET 中的 WebHost 是初始化和运行 Web 应用程序的核心组件。它负责配置服务、中间件和服务器环境。

WebHostBuilder 用于创建和配置 WebHost。它遵循构建器模式来设置服务、内容根目录和其他配置。

WebHost 提供依赖注入、日志记录、配置和 HTTP 服务器功能。它是所有 ASP.NET Core 应用程序的入口点。

ASP.NET WebHost 示例

以下示例演示了如何在 .NET 8 中直接使用 WebHost 创建一个基本的 ASP.NET 应用程序。

Program.cs
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Hosting;

var host = Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.Configure(app =>
        {
            app.UseRouting();
            
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", async context =>
                {
                    await context.Response.WriteAsync("Hello from WebHost!");
                });
                
                endpoints.MapGet("/time", async context =>
                {
                    await context.Response.WriteAsync($"Current time: {DateTime.Now}");
                });
            });
        });
    })
    .Build();

await host.RunAsync();

此示例展示了一个使用 WebHost 的最小化 ASP.NET 应用程序。Host.CreateDefaultBuilder 创建了一个带有默认配置的主机。

ConfigureWebHostDefaults 使用默认 Web 设置配置 WebHost。在其中,我们使用路由和终结点配置请求管道。

该示例定义了两个 GET 终结点:一个用于根路径,一个用于 /time。每个终结点都向客户端写入一个简单的响应。应用程序使用 RunAsync 异步运行。

这种方法让您可以完全控制托管环境和请求管道。这对于简单的应用程序或需要自定义托管的场景很有用。

来源

Microsoft ASP.NET WebHost 文档

在本文中,我们探讨了 ASP.NET 8 中的 WebHost。这个基本组件为 ASP.NET 应用程序的托管提供了基础,并实现了完全的控制。

作者

我的名字是 Jan Bodnar,我是一名充满热情的程序员,拥有丰富的编程经验。我从 2007 年开始撰写编程文章。至今,我已撰写了 1,400 多篇文章和 8 本电子书。我在教授编程方面拥有超过十年的经验。

列出所有 ASP.NET 教程