Ale*_*lex 6 c# kestrel-http-server asp.net-core
我按照本教程编写了我的第一个ASP.NET Core 2.0 Web REST API应用程序.但是我的具体问题是关于在VS2017中创建标准ASP.NET核心Web应用程序时在Program.cs文件中获得的代码,它与此处描述的代码相同:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
我有我的应用程序工作正常,当我在VS2017调试,所以接下来我做的步骤是按使它成为一个独立的应用程序本教程,它工作正常,并给了我一个可执行文件,我可以运行(我是在Windows 10 64) .
现在的问题是这个可执行文件在端口5000上启动了web服务器,但是我希望能够通过命令行参数配置监听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上进行监听.
我开始认为我正在尝试一些不可能的事情:)所以它真的不可能或者我错过了什么吗?
在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();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3279 次 |
最近记录: |