当在主入口点使用WebHostBuilder时,我如何指定它绑定到的端口?

默认情况下,它使用5000。

请注意,这个问题是特定于新的ASP。NET Core API(目前在1.0.0-RC2中)。


当前回答

当托管在docker容器(linux版本的我),你可能会得到一个'连接拒绝'消息。在这种情况下,您可以使用IP地址0.0.0.0,这意味着“这台机器上的所有IP地址”,而不是localhost环回来修复端口转发。

public class Program
{
    public static void Main(string[] args)
    {
        var host = new WebHostBuilder()
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .UseUrls("http://0.0.0.0:5000/")
            .Build();

        host.Run();
    }
}

其他回答

如果使用dotnet运行

dotnet run --urls="http://localhost:5001"

或者,你也可以通过命令行运行app来指定端口。

简单地运行命令:

dotnet run --server.urls http://localhost:5001

注意:其中5001是要运行的端口。

当托管在docker容器(linux版本的我),你可能会得到一个'连接拒绝'消息。在这种情况下,您可以使用IP地址0.0.0.0,这意味着“这台机器上的所有IP地址”,而不是localhost环回来修复端口转发。

public class Program
{
    public static void Main(string[] args)
    {
        var host = new WebHostBuilder()
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .UseUrls("http://0.0.0.0:5000/")
            .Build();

        host.Run();
    }
}

你可以在asp.net core 2.1+ appsettings中插入Kestrel section。json文件。

  "Kestrel": {
    "EndPoints": {
      "Http": {
        "Url": "http://0.0.0.0:5002"
      }
    }
  },

如果你没有kestrel部分,你可以使用"urls":

{
    "urls":"http://*.6001;https://*.6002"
}

但如果你在appsettings中有kestrel。Json, url部分将失败。

进入properties/launchSettings。找到你的appname,在这个下面找到applicationUrl。您将看到,它正在运行localhost:5000,将其更改为您想要的任何名称。然后运行dotnet运行......好哇