指定 ASP.NET Core Kestrel 接聽 Port

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

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


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

查看所有标签

猜你喜欢:

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

Python编程快速上手

Python编程快速上手

Albert Sweigart / 王海鹏 / 人民邮电出版社 / 2016-7-1 / 69.00元

如今,人们面临的大多数任务都可以通过编写计算机软件来完成。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。通过Python编程,我们能够解决现实生活中的很多任务。 本书是一本面向实践的Python编程实用指南。本书的目的,不仅是介绍Python语言的基础知识,而且还通过项目实践教会读者如何应用这些知识和技能。本书的首部分介绍了基本Python编程概念,第二部分介绍了一些不......一起来看看 《Python编程快速上手》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试