在特定端口上使用Kestrel时,如何在F5上启动url?

时间:2019-02-07 22:03:10

标签: visual-studio asp.net-core-2.0 kestrel-http-server

我有一个使用Kestrel和默认设置的Asp.Net Core 2.2应用程序。我进入了项目的调试属性,并将“启动浏览器”设置设置为要在调试时开始的页面,将“启动”设置为“项目”。一切正常,但我希望Kestrel使用特定端口。我找到了很多适用于该端口的示例(我使用hosting.json方式),但是它们似乎都忽略了“启动浏览器”设置。

是否没有办法让Visual Studio使用我选择的URL 自动打开新窗口/选项卡,并且在调试时使用特定端口?

Program.cs

public class Program
{
    public static void Main(string[] args)
    {
        var host = WebHost.CreateDefaultBuilder(args)
                    .UseKestrel()
                    .UseStartup<Startup>()
                    .Build();
        host.Run();
    }
}

launchSettings.json

{
  "profiles": {
    "Kestrel": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "swagger" 
    }
  }
}

hosting.json

{
  "urls": "https://localhost:44350/;"
}

如果我正在使用hosting.json,则主要是:

public static void Main(string[] args)
{
    var config = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddCommandLine(args)
        .AddJsonFile("hosting.json", optional: true)
        .Build();

    var host = WebHost.CreateDefaultBuilder(args)
                .UseConfiguration(config)
                .UseKestrel()
                .UseStartup<Startup>()
                .Build();

    host.Run();
}

1 个答案:

答案 0 :(得分:1)

在项目的调试属性中,应将“ Web服务器设置”的应用URL设置为所需的特定端口,并且默认选中“启动浏览器”。

或者您也应该在launchSettings.json中设置特定端口,如下所示:

"MVC2_2Project": {
  "commandName": "Project",
  "launchBrowser": true,
  "environmentVariables": {
    "ASPNETCORE_ENVIRONMENT": "Development"
  },
  "applicationUrl": "https://localhost:7001;http://localhost:7000"
}

launchSettings.json中的设置与项目的调试属性是同步的,您可以在一个位置进行设置。