指定 ASP.NET Core Kestrel 接聽 Port

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

内容简介:分享 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.


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

查看所有标签

猜你喜欢:

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

JavaScript高级程序设计(第3版)

JavaScript高级程序设计(第3版)

[美] Nicholas C. Zakas / 李松峰、曹力 / 人民邮电出版社 / 2012-3-29 / 99.00元

本书是JavaScript 超级畅销书的最新版。ECMAScript 5 和HTML5 在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为JavaScript 增添了很多适应未来发展的新特性。本书这一版除增加5 章全新内容外,其他章节也有较大幅度的增补和修订,新内容篇幅约占三分之一。全书从JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深......一起来看看 《JavaScript高级程序设计(第3版)》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

html转js在线工具
html转js在线工具

html转js在线工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具