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

ASP.NET Core 6部署为Windows Service时的端点配置问题求助

ASP.NET Core 6部署Windows Service时修改端点失败的问题

我在将ASP.NET Core 6部署为Windows Service时遇到了问题。当前的示例程序可以正常运行,但尝试修改端点,或通过配置文件配置Kestrel服务器更改端点后,就无法部署为Windows Service。有没有人遇到过类似的问题?

我的目标是将程序部署为Windows Service并使用证书进行认证。

可正常运行的主程序代码

var options = new WebApplicationOptions
{
    Args = args,
    ContentRootPath = WindowsServiceHelpers.IsWindowsService()
                 ? AppContext.BaseDirectory : default
};

var builder = WebApplication.CreateBuilder(options);

builder.Services.AddRazorPages();
builder.Services.AddHostedService<Services.Worker>();
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();

builder.Host.UseWindowsService();

var app = builder.Build();

app.UseRouting();
app.MapControllers();
app.Run();

Worker服务代码

public class Worker : BackgroundService
{
    public Worker(ILoggerFactory loggerFactory)
    {
        Logger = loggerFactory.CreateLogger<Worker>();
    }

    public ILogger Logger { get; }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        Logger.LogInformation("Worker is starting.");

        stoppingToken.Register(() => Logger.LogInformation("Worker is stopping."));

        while (!stoppingToken.IsCancellationRequested)
        {
            Logger.LogInformation("Worker is doing background work.");

            await Task.Delay(TimeSpan.FromSeconds(10), stoppingToken);
        }

        Logger.LogInformation("Worker has stopped.");
    }
}

导致部署失败的端点修改代码

添加以下代码后无法部署为Windows Service:

app.Urls.Add("http://localhost:5020");
app.Urls.Add("https://localhost:5021");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 12:17:33