ASP.NET Core 7.0 — настройка URL-адреса приложения Kestrel
.net На данный момент это код, который у меня есть:
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseWindowsService(options => {
options.ServiceName = "My Server";
}).ConfigureServices(services => {
services.AddHostedService<WindowsBackgroundService>();
});
...
и
"profiles": {
"MyProj": {
"applicationUrl": "http://127.0.0.1:5000;",
Как вместо этого установить (с портом) в конфигурации строителя?
Я видел разные ответы, но не уверен, как поступить с ASP.NET Core 7.0, здесь говорится об использовании:
builder.WebHost.ConfigureKestrel(serverOptions =>
{
serverOptions.ConfigureEndpointDefaults(listenOptions =>
{
// ...
});
});
но я не уверен, как установитьapplicationUrl
и еслиWebHost
это то, что мне нужно (поскольку я использую службу Windows, как указано выше).
2 ответа
Вполне допустимо использовать WebApplicationBuilder.WebHost в сочетании с функциональностью службы Windows, посколькуWebHost
все еще работает при использованииWebApplicationBuilder
.
Из-за этого я думаю, что самый простой способ установить URL-адрес для вашего сценария — использовать:
builder.WebHost.UseUrls("http://127.0.0.1:5000");
Для этого не требуется настраивать что-либо конкретное для Kestrel, но конфигурация все же сводится к Kestrel.
Чтобы настроить Kestrel напрямую, вы можете использоватьConfigureKestrel
, как предложено в вашем вопросе. Чтобы задать URL таким образом, используйтеListen
метод:
builder.WebHost.ConfigureKestrel(kestrelServerOptions =>
{
kestrelServerOptions.Listen(IPAddress.Loopback, 5001);
});
Существует несколько вариантов настройки URL-адреса, таких как настройка HTTPS, использование DnsEndPoint и т. д. Этот подход обеспечивает гораздо большую гибкость, но если вы просто хотите установить URL-адрес программно, я бы по-прежнему рекомендовалUseUrls
подход.
Толькоrun the following command in cmd
начальный URL-адрес в ядре aspnet
setx ASPNETCORE_URLS "http://127.0.0.1:5001;https://127.0.0.1:5002"