Kestrel 是 .NET 中用于 ASP.NET Core 应用程序的跨平台 Web 服务器。它是轻量级且高性能的,能够处理大量并发连接,常被用作 ASP.NET Core 应用的默认服务器。以下为你介绍 Kestrel 的基本使用和配置:
基本使用
创建一个简单的 ASP.NET Core 应用程序时,Kestrel 会自动配置并运行。下面是一个基础的示例:
csharp
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
var builder = WebApplication.CreateBuilder(args);
// 创建应用实例
var app = builder.Build();
// 配置一个简单的路由
app.MapGet("/", () => "Hello, Kestrel!");
// 运行应用
app.Run();
上述代码实现了一个简单的 Web 应用程序,当访问根路径时,会返回 “Hello, Kestrel!” 消息。
配置 Kestrel
你可以在 Program.cs
文件里对 Kestrel 进行配置,比如设置监听的 URL、端口等。以下是一个配置示例:
csharp
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Microsoft.AspNetCore.Server.Kestrel.Core;
var builder = WebApplication.CreateBuilder(args);
// 配置 Kestrel
builder.WebHost.ConfigureKestrel(options =>
{
// 监听特定的 IP 地址和端口
options.ListenAnyIP(5000);
options.ListenAnyIP(5001, listenOptions =>
{
listenOptions.Protocols = HttpProtocols.Http2;
});
});
var app = builder.Build();
app.MapGet("/", () => "Hello, Kestrel!");
app.Run();
上述代码中,Kestrel 被配置为监听任意 IP 地址的 5000 端口,同时监听 5001 端口并使用 HTTP/2 协议。
配置 HTTPS
在生产环境中,通常需要使用 HTTPS 来保障数据传输的安全性。下面是配置 HTTPS 的示例:
csharp
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Microsoft.AspNetCore.Server.Kestrel.Https;
using System.Security.Cryptography.X509Certificates;
var builder = WebApplication.CreateBuilder(args);
// 配置 Kestrel 使用 HTTPS
builder.WebHost.ConfigureKestrel(options =>
{
// 加载证书
var certificate = new X509Certificate2("path/to/your/certificate.pfx", "yourPassword");
options.ListenAnyIP(5001, listenOptions =>
{
listenOptions.UseHttps(new HttpsConnectionAdapterOptions
{
ServerCertificate = certificate
});
});
});
var app = builder.Build();
app.MapGet("/", () => "Hello, Secure Kestrel!");
app.Run();
上述代码中,Kestrel 被配置为监听 5001 端口并使用指定的证书启用 HTTPS。
这些示例展示了 Kestrel 的基本用法和常见配置,你可以依据自身需求对其进行调整。