ASP.NET Core部署手冊:3.Windows篇

来源:https://www.cnblogs.com/green-jcx/archive/2022/07/22/16502713.html
-Advertisement-
Play Games

“don't worry”,部署ASP.NET Core應用可以和原來部署.NET Framework的ASP.NET應用一樣的簡單,還是“熟悉的配方,熟悉的味道”,甚至提供了更加便捷的Kestrel部署方式,下麵主要介紹在windows平臺下兩種常用部署方式: 方式一:Kestrel部署Web應用 ...


“don't worry”,部署ASP.NET Core應用可以和原來部署.NET Framework的ASP.NET應用一樣的簡單,還是“熟悉的配方,熟悉的味道”,甚至提供了更加便捷的Kestrel部署方式,下麵主要介紹在windows平臺下兩種常用部署方式:

  • 方式一:Kestrel部署Web應用
  • 方式二:IIS部署Web應用

下載ASP.NET Core運行時

在部署應用之前,ASP.NET Core運行時的具備是運行Web應用的基本條件,本文的部署以ASP.NET Core3.1的運行時版本為例,下載地址:https://dotnet.microsoft.com/zh-cn/download/dotnet/3.1,在界面上選擇安裝包時,保險起見建議選擇Hosting Bundle(托管捆綁包),該包除了自身ASP.NET Core的運行時還包括了.NET 運行時和 IIS 支持。

 

請在文件下載後拷貝到對應的伺服器進行安裝。

為了確認安裝是否成功,我們可以使用.NET CLI命令來驗證,打開命令行視窗輸入:dotnet --info,點擊回車後如果出現如下界面則表示運行時安裝成功。

1.方式一:Kestrel部署Web應用

1.1.配置Kestrel伺服器監聽的URL

Kestrel是ASP.NET Core內置的一個性能強大、功能豐富、跨平臺的Web伺服器,所以IIS伺服器不再是我們部署應用的唯一選擇。對於內置了Kestrel伺服器的ASP.NET Core站點,在編譯發佈成功後,將發佈目錄直接拷貝到伺服器上,在打開目錄的exe文件就可以實現運行。

由於Kestrel伺服器而言它預設監聽綁定的地址是http://localhost:5000,這是一個本地訪問的地址,所以如果我們要遠程訪問部署的站點,預設監聽的地址顯然是不行的,我們必須通過設置一個可以用於遠程訪問的地址。

配置Kestrel監聽的URL目前有五種方式,本文主要介紹一種相對方便的方式進行配置,就是為伺服器設置一個名稱為:“ASPNETCORE_URLS”的環境變數,並將值設置為:http://0.0.0.0:5000/,其含義代表監聽不局限於某個固定IP,使用路由器為伺服器分配的IP加上5000埠號就可以訪問。

 

有關更多配置Kestrel監聽URL的方式可詳見下麵的地址:

https://www.cnblogs.com/linezero/p/aspnetcorekestrelurls.html

1.2.使用.NET CLI命令進行發佈

1.打開我們解決方案中啟動項目的目錄,滑鼠右擊空白處,在展開的菜單欄中點擊“在終端中打開”。

 

2.我們使用.NET CLI命令結合控制台的方式編譯發佈Web站點,在命令行視窗輸入以下命令:

dotnet publish --configuration Release -o MyFirstPublish

以上的命令表示我們將代碼生成“配置”選項設置為Release模式,以便優化程式集。-o表示將編譯發佈後的文件存放在項目根目錄中的“MyFirstPublish”的文件夾中。

3.輸入.NET CLI命令後進行回車,如果執行沒有異常且發佈的文件成功創建,則表示發佈成功。

4.將發佈的文件拷貝到伺服器的指定目錄;

5.打開項目的發佈文件夾,在目錄下找到尾碼為exe的文件(具體文件名和項目的名稱一致),雙擊打開文件以啟動Web服務。

6.在瀏覽器輸入:伺服器IP地址加ASP.NET Core預設使用的埠號5000,測試站點是否能夠正常訪問。

 

使用自帶的Kestrel Web伺服器部署運行ASP.NET Core應用,實際操作下來你會發現這種方式非常方便,可以說是ASP.NET Core中最快速的部署方案,但是該方案必須要保證項目的exe程式必須一直啟動,如果關閉後我們的站點也會無法啟動,所以在生產環境不建議使用該部署方式,不過對於開發演示階段還是非常適合的。


 

2.方式二:IIS部署Web應用

2.1.安裝IIS

本文以Windows Server2012 R2操作系統為例,介紹如何在伺服器中安裝IIS。

1.在服務管理器視窗點擊“角色和功能”;

2.安裝類型選擇“基於角色或基於功能的安裝”,單擊下一步;

3.伺服器選擇“從伺服器池中選擇伺服器”,單擊下一步;

4.在選擇伺服器角色界面勾選“Web伺服器IIS”,在彈出的對話框中單擊添加功能即可;

 

5.在“選擇功能”界面勾選.NET Framework 3.5功能和.NET Framework 4.5節點,以及節點下的所有節點;

6.在“選擇角色服務”界面中,建議為IIS安裝的服務勾選如下選項,勾選後點擊下一步;

 

7.確認安裝

 

2.2.使用VS將應用發佈到文件夾

在VS中選擇待發佈的啟動項目滑鼠右擊,在下拉菜單中選擇【發佈】,在彈出的視窗中會載入出VS目前所支持的發佈方式。其中將應用程式發佈到本地文件夾,是我們最“熟悉”的配方,從.NET Framework到.Net Core該方式也一直保留,該方式也是目前VS發佈中最常用的方式,所以我們延用該方式進行發佈,選擇後單擊下一步。

 選擇將項目發佈文件存放在哪個目錄,這個目錄根據個人需求自定義或者使用預設路徑即可,單擊下一步。

 

在選擇好發佈方式和發佈文件的存放路徑後,VS會為項目自動生成一個發佈配置文件,我們在發佈配置文件界面底部點擊【顯示所有設置】可以進行發佈的配置界面。

 

下麵我們對以上的配置的說明和選擇做一個簡單的介紹,詳見下表:

在配置好發佈文件後,單擊右上角的【發佈】按鈕啟動發佈流程。

2.3.添加IIS網站

在伺服器打開IIS管理器,在左側節點樹選擇網站節點,右擊在菜單中選擇【添加網站】,然後在界面中對部署網站進行配置。其中網站名稱通常設置為項目名稱,IP地址選擇未分配則使用伺服器當前的IP地址,埠號的選擇要確保已開通相應的埠許可權,輸入完內容後單擊【完成】。

在【應用程式池】列表中找到項目對應的應用程式池雙擊打開,在界面中將.NET CLR版本設置為“無托管代碼”

 

單擊確定後,網站的部署工作已經完成,可以嘗試訪問站點看是否訪問正常。

 

如果發佈後網站無法訪問,可以瀏覽文章《ASP.NET Core部署手冊:註意事項和問題排查》嘗試分析。

 

 

知識改變命運
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 多商戶商城系統,也稱為B2B2C(BBC)平臺電商模式多商家商城系統。可以快速幫助企業搭建類似拼多多/京東/天貓/淘寶的綜合商城。 多商戶商城系統支持商家入駐加盟,同時滿足平臺自營、旗艦店等多種經營方式。平臺可以通過收取商家入駐費,訂單交易服務費,提現手續費,簡訊通道費等多手段方式,實現整體盈利。 ...
  • 5 如何合理使用索引加速 tips: 500萬條建表sql參照網盤sql腳本 [root@linux-141 bin]# ./mysql -u root -p itcast < product_list-5072825.sql 索引是資料庫優化最常用也是最重要的手段之一, 通過索引通常可以幫助用戶解 ...
  • phpstorm2022是一款非常好用的php開發軟體,軟體支持所有PHP語言功能,提供最優秀的代碼補全、重構、實時錯誤預防等等功能,能夠為程式員提供更為效率的php開發,新版本改進了phpstorm軟體的自動完成功能。還增加了代碼清理工具,可以刪除不必要的部分來優化全類名稱,從而更好的提高用戶的工 ...
  • Mybatis Generator 使用xml配置文件形式自動生成 只生成實體類、mapper介面及mapper.xml。並且包含豐富的內容 首先添加mybatis依賴和相關插件 <!-- 依賴MyBatis核心包 --> <dependencies> <dependency> <groupId>o ...
  • 技術群里有人發了一段代碼: 附言:兄弟們,這個單例怎麼樣? 我回覆:什麼鬼,看不懂啊?! 也有其他小伙伴表示看不懂,看來大家的C#基礎和我一樣並不全面。 我看不懂,主要是因為我沒用過TaskCompletionSource和Interlocked的CompareExchange方法,然後經過我1、2 ...
  • 1.Xshell遠程登錄Linux系統 在實際的項目部署工作中,遠程登錄到伺服器上是繞不開的彎。本文遠程登錄Linux系統選用工具的是目前最常用、最好用的Xshell。Xsheel是一個強大的安全終端模擬軟體,它支持SSH1、SSH2以及Windows系統的Telnet協議。它的運行速度流程並且完美 ...
  • 1.保障應用程式埠的連通性 通常情況下伺服器的防火牆通常都是開啟的狀態,所以我們需要保證我們部署應用程式的埠是開啟了相應的訪問許可權,否則我們的應用程式將無法被外界進行訪問。這裡為了快速測試應用程式的埠連通性,我們使用比較方便的Telnet工具進行測試,該工具的安裝包內置在Windows操作系統 ...
  • 一:背景 1. 講故事 前段時間有位朋友說他的程式 CPU 出現了暴漲現象,由於程式是買來的,所以問題就比較棘手了,那既然找到我,就想辦法幫朋友找出來吧,分析下來,問題比較經典,有必要和大家做一下分享。 二:WinDbg 分析 1. CPU 真的爆高嗎 一直關註這個系列的朋友應該知道,用 !tp 驗 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...