但願給你3-5分鐘的碎片化學習,多是坐地鐵、等公交,聚沙成塔,水滴石穿,謝謝關注。web
不少人第一次在IIS中部署Asp.Net Core App的人都會遇到問題,會發現原來的部署方式沒法運行Asp.Net Core App程序。其實大的方式沒有多少變化,Asp.Net Core App爲了作到跨平臺,自帶了一個輕量級的Web Server-Kestrel,那麼要在IIS中部署Asp.Net Core App,就必須有一種新的機制來協調IIS與Kestrel Server之間的數據傳遞後端
與傳統的Asp.Net程序不一樣,Asp.Net Core App使用了Kestrel Server。Kestrel[kestrəl]是一個跨平臺的Web Server,與IIS同樣負責請求的監聽、接收和響應,但沒有IIS豐富的管理功能,仍須要由IIS來處理一些前置工做。(固然你也可使用Apache來作前置處理)服務器
IIS負責把外部請求轉發給後端的Asp.net Core App,充當「反向代理」角色。app
Asp.Net Core App部署須要操做系統知足:asp.net
安裝.NET Core Windows Server Hosting程序集,讓IIS具有反向代理功能。該程序集包含了.Net Core運行時(Runtime),.Net Core 類庫(Library)和 Asp.Net Core Module。其中Asp.Net Core Module負責反向代理工做。學習
特別注意,按微軟官方說法,若是是脫機安裝,則需先手動安裝Microsoft Visual C++ 2015 Redistributable。但實踐證實即便在線安裝不少時候也不會自動安裝 Microsoft Visual C++ 2015 Redistributable,所以強烈建議手動安裝Microsoft Visual C++ 2015 Redistributabl。網站
另外,目前.NET Core版本升級很快,請下載最新版本的.NET Core Windows Server Hosting,確保服務器上的.Net Core版本不低於部署的Asp.Net Core App版本。操作系統
下載Microsoft Visual C++ 2015 Redistributabl.net
下載地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=53840命令行
下載最新版本.NET Core Windows Server Hosting
下載地址:https://www.microsoft.com/net/download#/runtime
安裝完後,請確保IIS的模塊裏的配置是對的,請見下圖:
模塊包含有:asp.net core module
有兩種方法:能夠經過dotnet publish 命令發佈,也能夠經過Visual Studio發佈。
命令行發佈
dotnet publish
默認會發布到bin/Debug目錄下,能夠指定一個發佈目錄
dotnet publish -o C:UsersjackyfeiDownloads
或者
dotnet publish --framework netcoreapp1.1 --output "E:Publish" --configuration Release
VS界面發佈
接下來的步驟與部署傳統網站基本一致,但也有稍許不一樣。
1)在網站根目錄建立一個logs文件夾。若是你開啓了某些日誌服務,日誌文件將記錄在這裏。固然也能夠不記錄日誌,但初次部署對排錯有幫助,建議建立。
web.config 中開啓 stdoutLogEnabled="true"
<aspNetCore processPath="dotnet" arguments=".Web.dll" stdoutLogEnabled="true" stdoutLogFile=".logsstdout" />
2) 在IIS管理器中添加網站。步驟與通常網站配置一致:
3) 配置應用程序池。在左側導航欄選擇「應用程序池」,選擇指定程序池,右鍵菜單,選擇「基本設置」,將.Net CLR版本設置爲「無託管代碼」。
我是IT人張飛洪,入行10年有餘,人不堪其憂,吾不改其樂,謝謝關注個人頭條號。