服务器启动后,如何在运行时动态添加/删除 Kestrel 的附加监听 URL?

问题描述 投票:0回答:1

我希望能够在 Web 服务器启动后添加/删除 Kestrel 上侦听的端口(通常通过 IWebHostBuilder 中的

UseUrls
方法进行配置)。我不想在处理,因为我需要继续为其他端口上的任何现有请求提供服务,这可能吗?

asp.net-core .net-core kestrel-http-server kestrel
1个回答
0
投票

我能够通过注入

IConfiguration
并在将端点添加到
Kestrel
部分后触发重新加载来以编程方式添加端点:

// IConfiguration comes from DI
public class KestrelReloader(IConfiguration config) {

    private async Task Reload()
    {
        const string apiUrl = "http://localhost:5001";
        var section = config.GetSection("Kestrel:EndPoints:HttpLocalhost:Url");
        section.Value = apiUrl;
        if (config is IConfigurationRoot configRoot)
        {
            configRoot.Reload();
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.