指定 ASP.NET Core Kestrel 接聽 Port

栏目: ASP.NET · 发布时间: 5年前

内容简介:分享 ASP.NET Core 菜烏問題一枚。使用 Visual Studio 或 dotnet 命令列工具編譯發佈 ASP.NET Core 專案後,執行 dotnet WebAsmName.dll 可啟動 Kestrel 執行網站,預設是聽 httq://localhost:5000 及 httqs://localhost:5001。延伸閱讀:有趣的是,當我以 microsoft/dotnet:2.1-aspnetcore-runtime Image 將同樣的 ASP.NET Core 網站包成 Do

分享 ASP.NET Core 菜烏問題一枚。

使用 Visual Studio 或 dotnet 命令列 工具 編譯發佈 ASP.NET Core 專案後,執行 dotnet WebAsmName.dll 可啟動 Kestrel 執行網站,預設是聽 httq://localhost:5000 及 httqs://localhost:5001。延伸閱讀: ASP.NET Core 練功筆記 1ASP.NET Core 練功筆記 2 – Ubuntu + SQLite + Dapper

有趣的是,當我以 microsoft/dotnet:2.1-aspnetcore-runtime Image 將同樣的 ASP.NET Core 網站包成 Docker 容器,設定檔沒動也沒設參數,網站卻會改掛在 80 Port。延伸閱讀: ASP.NET Core Docker 筆記 1 - 初探

指定 ASP.NET Core Kestrel 接聽 Port

就這麼知其然不知其所然混了好幾個月,是該花點時間把它搞清楚。

答案很簡單,依據 官方文件 ,Kestrel 聽什麼 Port 可透過以下幾種方式控制:

  • 不設定(No Configuration)
    預設聽 httq://localhost:5000 及 httqs://localhost:5001 (前題是需先設好 SSL 憑證)
  • 使用 ASPNETCORE_URLS 環境參數
    在 Docker 裡自動改聽 80 Port 的謎底解開了 - 在 Docker 容器中 ASPNETCORE_URLS 環境變數被設成 http://+:80
    指定 ASP.NET Core Kestrel 接聽 Port
  • dotnet Web.dll 時加上 --urls 參數
    例如以下範例:
    指定 ASP.NET Core Kestrel 接聽 Port
  • 透過 appSettings.json 指定
    加入 Kestrel / EndPoints / Http / Url 指定,範例如下:
    {
      "Logging": {
        "LogLevel": {
          "Default": "Warning"
        }
      },
      "Kestrel": {
      	"EndPoints": {
      		"Http": {
      			"Url": "http://localhost:5123"
     		}
    	}
      }
    }
  • 呼叫 UseUrls() 擴充方法
    UseUrls() 可傳入一或多個端點 URL 指定 Kestrel 網站要聽的 Port,但將設定寫死在程式碼不是好主意,略過。
    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
      WebHost.CreateDefaultBuilder(args)
          .UseStartup<Startup>()
          .UseUrls("http://localhost:5123");

實務上讓 Kestrel 直接對外提供服務的機會不多,中間多會搭配 IIS、Nginx 等 Reverse Proxy。即使是無 Docker 環境,我們也只需有能力指定錯開 TCP Port 避免打架就夠了。至於要掛載多個 Port、依 Host Header 導向不同網站、設定 SSL 憑證,交給 Nginx、Certbot 才是王道。 官方文件 還有很多關於 Kestrel 進階設定的介紹,等到要用時再查。

Summary the ways to configure Kestrel tcp port.


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

产品经理的第二本书

产品经理的第二本书

[美] 哥乔斯 / 戴维侬 / 中国财政经济出版社 / 2004-4 / 39.80元

产品经理的第二本书:产品经理实战技巧指南,ISBN:9787500570950,作者:(美)琳达·哥乔斯(Linda Gorchels)著;戴维侬译;戴维侬译一起来看看 《产品经理的第二本书》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换