gpt4 book ai didi

c# - Kestrel 配置使用特定端口 + url

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:16 28 4
gpt4 key购买 nike

我在带有 VS2017 (15.3.5) 的 Win 7 上使用 Asp.Net core 2.0.2。

我当前的 Kestrel 配置如下所示:

return WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureAppConfiguration((hostContext, config) =>
{
var envName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");

config.Sources.Clear();
config.AddJsonFile("appsettings.json", optional : false);
config.AddJsonFile($"appsettings.{envName}.json", optional : false);
config.AddEnvironmentVariables();
})
.UseKestrel(options =>
{
options.Listen(IPAddress.Loopback, 5859);
})
.UseContentRoot(pathToContentRoot)
.Build();

这显然是在 http://localhost:5859 上监听。我想配置 Kestrel,使其仅监听自定义 URL,例如 http://localhost:5859/MyNewApp。我该怎么做?

(在 Core 1.0 中,我使用了 UseUrls("http://localhost:5859/MyNewApp") 部分完成了工作。它会监听 http://localhost :5859 以及 http://localhost:5859/MyNewApp。在 Core 2.0.2 中执行相同操作会导致异常:

System.InvalidOperationException: A path base can only be configured using IApplicationBuilder.UsePathBase())

最佳答案

在 2.0 中,您需要利用 UsePathBase,因为 UseUrlsremoved from Kestrel .您需要在启动时在 Configure 方法中执行此操作:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UsePathBase("/MyNewApp");
}

关于c# - Kestrel 配置使用特定端口 + url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48765360/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com