You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 7.0:如何在Builder配置中设置Kestrel的applicationUrl

在ASP.NET Core 7.0 Windows服务中配置applicationUrl

你有两种常用方式可以在Builder配置里直接设置监听地址和端口,这两种都完全适用于Windows服务场景:

方法一:直接使用UseUrls(最简便)

这个方法和你在launchSettings.json里设置applicationUrl的逻辑完全一致,直接指定要监听的地址即可,多个地址用逗号分隔:

var builder = WebApplication.CreateBuilder(args);

// 添加这一行设置监听地址和端口
builder.WebHost.UseUrls("http://127.0.0.1:5000");

builder.Host.UseWindowsService(options => {
  options.ServiceName = "My Server";
}).ConfigureServices(services => {
  services.AddHostedService<WindowsBackgroundService>();
});
// ...后续启动代码

如果需要监听多个端点,比如同时监听本地回环和所有网卡的端口:

builder.WebHost.UseUrls("http://127.0.0.1:5000", "http://0.0.0.0:5001");

方法二:通过ConfigureKestrel配置(更灵活)

如果需要更精细的控制(比如配置HTTPS证书、限制连接数等),可以用微软文档提到的ConfigureKestrel方式,直接指定监听端口:

var builder = WebApplication.CreateBuilder(args);

builder.WebHost.ConfigureKestrel(serverOptions =>
{
    // 监听本地回环的5000端口(对应http://127.0.0.1:5000)
    serverOptions.ListenLocalhost(5000);
    
    // 可选:如果需要监听所有网卡的端口,用下面的
    // serverOptions.ListenAnyIP(5000);
    
    // 可选:配置HTTPS端点
    // serverOptions.ListenLocalhost(5001, listenOptions =>
    // {
    //     listenOptions.UseHttps("your-cert.pfx", "cert-password");
    // });
});

builder.Host.UseWindowsService(options => {
  options.ServiceName = "My Server";
}).ConfigureServices(services => {
  services.AddHostedService<WindowsBackgroundService>();
});
// ...后续启动代码

补充说明

  • launchSettings.json里的配置仅在本地开发调试时生效,部署为Windows服务后不会读取该文件,所以把配置移到代码里是正确的做法。
  • 两种方法都兼容Windows服务场景,WebHost是WebApplicationBuilder的核心组成部分,不管程序以控制台还是Windows服务模式运行,这些配置都会生效。

内容的提问来源于stack exchange,提问作者kofifus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 03:45:49