ASP.NET core 2.0 standalone: передача url прослушивания через командную строку
Я пишу свой первый ASP.NET Core 2.0 web REST API приложение, следуя в этом уроке. Однако мой конкретный вопрос касается кода, который вы получаете в программе.cs-файл при создании стандарта ASP.NET ядро веб-приложения в VS2017, это тот же код, описанный здесь:
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
namespace WebApplication5
{
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
}
у меня есть приложение, работающее нормально, когда я отлаживаю в VS2017, поэтому следующим шагом, который я сделал, было сделать его автономным приложением в соответствии с в этом уроке, который отлично работает и дает мне исполняемый файл, который я могу запустить (я на windows 10 x64).
проблема в том, что этот исполняемый файл запускает веб-сервер на порту 5000, но я хотел бы иметь возможность настраивать URL-адреса прослушивания с помощью параметра командной строки.
глядя на код выше, мы можем видеть, что args
перешло к WebHost.CreateDefaultBuilder(args)
, поэтому я предполагаю, что любые аргументы командной строки интерпретируются этой функцией, однако я не могу понять, что я должен передать команде линия для того, чтобы заставить сервер слушать на другом порту.
Я пробовал следующие варианты:
- MyApp.exe --UseUrls="http://*:5001"
- MyApp.exe --UseUrls=http://*:5001
- MyApp.exe --server.urls=http://*:5001
- MyApp.exe urls="http://*:5001"
и различные другие комбинации, как это... Приложение запускается, но продолжает слушать только на порту 5000.
Я начинаю думать, что я пытаюсь что-то, что невозможно :) так это действительно невозможно или я что-то упускаю?
1 ответов
в linux я использую:./MYAPP urls=http://*:8081 &
, но для этого вам нужно изменить свой код. Попробуйте изменить код соответственно:
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args)
{
var configuration = new ConfigurationBuilder().AddCommandLine(args).Build();
return WebHost.CreateDefaultBuilder(args)
.UseConfiguration(configuration)
.UseStartup<Startup>()
.Build();
}