天天看點

1.4部署到IIS「深入淺出ASP.NET Core系列」Asp.Net Core的部署模式部署環境安裝.NET Core Windows Server Hosting程式集釋出網站IIS中配置Asp.Net Core App釋出成功

希望給你3-5分鐘的碎片化學習,可能是坐地鐵、等公交,積少成多,水滴石穿,謝謝關注。

很多人第一次在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 Core的部署模式

 與傳統的Asp.Net程式不同,Asp.Net Core App使用了Kestrel Server。Kestrel[kestrəl]是一個跨平台的Web Server,與IIS一樣負責請求的監聽、接收和響應,但沒有IIS豐富的管理功能,仍需要由IIS來處理一些前置工作。(當然你也可以使用Apache來做前置處理)

1.4部署到IIS「深入淺出ASP.NET Core系列」Asp.Net Core的部署模式部署環境安裝.NET Core Windows Server Hosting程式集釋出網站IIS中配置Asp.Net Core App釋出成功

IIS負責把外部請求轉發給後端的Asp.net Core App,充當“反向代理”角色。

部署環境

 Asp.Net Core App部署需要作業系統滿足:

  • Windows 7 或更新版本
  • Windows Server 2008 R2 或更新版本

安裝.NET Core Windows Server Hosting程式集

 安裝.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

下載下傳位址:https://www.microsoft.com/zh-cn/download/details.aspx?id=53840

1.4部署到IIS「深入淺出ASP.NET Core系列」Asp.Net Core的部署模式部署環境安裝.NET Core Windows Server Hosting程式集釋出網站IIS中配置Asp.Net Core App釋出成功

 下載下傳最新版本.NET Core Windows Server Hosting

下載下傳位址:https://www.microsoft.com/net/download#/runtime

1.4部署到IIS「深入淺出ASP.NET Core系列」Asp.Net Core的部署模式部署環境安裝.NET Core Windows Server Hosting程式集釋出網站IIS中配置Asp.Net Core App釋出成功

安裝完後,請確定IIS的子產品裡的配置是對的,請見下圖:

1.4部署到IIS「深入淺出ASP.NET Core系列」Asp.Net Core的部署模式部署環境安裝.NET Core Windows Server Hosting程式集釋出網站IIS中配置Asp.Net Core App釋出成功

 子產品包含有:asp.net core module

1.4部署到IIS「深入淺出ASP.NET Core系列」Asp.Net Core的部署模式部署環境安裝.NET Core Windows Server Hosting程式集釋出網站IIS中配置Asp.Net Core App釋出成功

釋出網站

 有兩種方法:可以通過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.4部署到IIS「深入淺出ASP.NET Core系列」Asp.Net Core的部署模式部署環境安裝.NET Core Windows Server Hosting程式集釋出網站IIS中配置Asp.Net Core App釋出成功

IIS中配置Asp.Net Core App

 接下來的步驟與部署傳統網站基本一緻,但也有稍許不同。

1)在網站根目錄建立一個logs檔案夾。如果你開啟了某些日志服務,日志檔案将記錄在這裡。當然也可以不記錄日志,但初次部署對排錯有幫助,建議建立。

1.4部署到IIS「深入淺出ASP.NET Core系列」Asp.Net Core的部署模式部署環境安裝.NET Core Windows Server Hosting程式集釋出網站IIS中配置Asp.Net Core App釋出成功
1.4部署到IIS「深入淺出ASP.NET Core系列」Asp.Net Core的部署模式部署環境安裝.NET Core Windows Server Hosting程式集釋出網站IIS中配置Asp.Net Core App釋出成功

web.config 中開啟 stdoutLogEnabled="true"

<aspNetCore processPath="dotnet" arguments=".Web.dll" stdoutLogEnabled="true" stdoutLogFile=".logsstdout" />      

2) 在IIS管理器中添加網站。步驟與一般網站配置一緻:

1.4部署到IIS「深入淺出ASP.NET Core系列」Asp.Net Core的部署模式部署環境安裝.NET Core Windows Server Hosting程式集釋出網站IIS中配置Asp.Net Core App釋出成功

3) 配置應用程式池。在左側導航欄選擇“應用程式池”,選擇指定程式池,右鍵菜單,選擇“基本設定”,将.Net CLR版本設定為“無托管代碼”。

1.4部署到IIS「深入淺出ASP.NET Core系列」Asp.Net Core的部署模式部署環境安裝.NET Core Windows Server Hosting程式集釋出網站IIS中配置Asp.Net Core App釋出成功

釋出成功

1.4部署到IIS「深入淺出ASP.NET Core系列」Asp.Net Core的部署模式部署環境安裝.NET Core Windows Server Hosting程式集釋出網站IIS中配置Asp.Net Core App釋出成功
我是.NET架構師張飛洪,入行10年有餘,人不堪其憂,吾不改其樂,謝謝關注我的 頭條号