.net core 其實是自宿主性質的web應用程序,而不再是web網站,所以.net core是可以直接單獨作為系統服務部署。但是實際情況中,為了同個一個端口能支持多個web應用和統一管理,還是應該與某個服務器整合,比如iis,Jexus。所以.net core 不再是由iis工作進程進行托管,而是使用自托管Web服務器(Kestrel)。iis則是作為反向代理的角色,將請求轉發到Kestrel。在這里面最重要的角色便是AspNetCoreModule,它是其中一個的IIS模塊,請求進入到IIS之后便立即由它轉發,並迅速重定向到ASP.NET Core項目中,所以這時候我們無需設置應用程序池來托管我們的代碼,它只負責轉發請求而已。
部署之前要確保你的IIS上已經安裝了AspNetCoreModule托管模塊,如果沒有的話,點擊https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/aspnet-core-module?tabs=aspnetcore2x根據core版本,選擇相應包下載安裝.
發布程序,並部署網站,這一步和傳統web網站沒有什么不同。
設置應用程序池的.NET CLR版本為“無托管代碼”,因為剛才也說了,IIS是作為一個反向代理的角色,並不需要它來托管代碼

(PS 圖片借用園友圖,侵刪)
具體信息可參考官方文檔 https://docs.microsoft.com/en-us/aspnet/core/publishing/iis
