項目發佈部署:如何發佈.NETCore項目到IIS伺服器?

来源:https://www.cnblogs.com/kimiliucn/archive/2023/08/15/17630710.html
-Advertisement-
Play Games

本文將詳細介紹如何發佈.NET Core項目到IIS伺服器。首先,第一步需要安裝IIS,介紹了在本地電腦和伺服器中進行安裝。然後需要安裝SDK和運行時才能發佈.NETCore項目。其次介紹瞭如何發佈.NETCore項目和Vue項目,並配置IIS。最後介紹瞭如何將項目部署到Service服務中。 ...


前言:本文將詳細介紹如何發佈.NET Core項目到IIS伺服器。首先,第一步需要安裝IIS,介紹了在本地電腦和伺服器中進行安裝。然後需要安裝SDK和運行時才能發佈.NETCore項目。其次介紹瞭如何發佈.NETCore項目和Vue項目,並配置IIS。最後介紹瞭如何將項目部署到Service服務中。

一、安裝IIS教程

1.1-在本地電腦上(Windows)上安裝IIS

(1)右擊——>點擊【顯示設置】
image.png
(2)搜索【控制面板】
image.png
(3)點擊【程式】
image.png
(4)點擊【啟動或關閉windows功能】
image.png
(5) 選擇Internet Information Service(IIS的縮寫)
image.png
image.png

1.2-在伺服器上(WindowsServer)上安裝IIS

(1)打開【伺服器管理器】
image.png
(2)按照以下步驟操作。點擊【添加角色和功能】
image.png
(3)點擊【下一步】
image.png
(4)在安裝類型類目中,選擇【基於角色活基於功能的安裝】。
image.png
(5)點擊【下一步】
image.png
(6)勾選【Web伺服器(IIS)】,然後點擊【下一步】。image.png
(7)然後點擊【下一步】。
image.png
(8)然後點擊【安裝】,這個過程可能比較長一點,需要等一會安裝好。
image.png
(9)安裝完畢後,可以在這裡看到有IIS了。
image.png


二、在伺服器上安裝SDK和運行時

下載Runtime官網:https://dotnet.microsoft.com/download/dotnet-core

根據自己的項目下載不同的版本:
image.png

博主下載的是.NET 5(一般安裝RunTime就行了):
image.png

下載SDK,博主下載的是64位,具體根據自己的電腦來下載。
image.png

得到這2個文件:
image.png

如果是在自己電腦上發佈,就直接雙擊安裝即可。如果要將項目發佈到伺服器上,將這2個文件複製到伺服器上,再分別進行安裝。
image.png
image.png

在伺服器上安裝成功後,然後進行測試是否安裝成功:
image.png


三、項目發佈

3.1-發佈.NET Core項目到IIS

(1)右擊項目,選擇【發佈】
image.png
image.png
(2)選擇【文件夾】
image.png
(3)選擇要保存的路徑,然後點擊【完成】;
image.png
(4)點擊【發佈】,可以看到已經發佈完成了。
image.png
image.png
(5)然後將打包後的文件夾,複製到伺服器上。


3.2-發佈Vue項目到IIS

(1)打開Vue項目。
image.png
(2)在VS Code或者終端屬於以下命令進行項目的打包。

npm run build

(3)然後得到一個dist文件夾。
image.png
(4)打開IIS,新建一個站點。
image.png
(5)然後訪問網站,如果出現這個錯誤。

HTTP錯誤404.0 -Not Found
您要找的資源已被刪除、已更名或暫時不可用。

image.png
(6)解決方案如下:在IIS添加一個URL重寫功能即可。
image.png
6.2-打開以下網址,進行下載並安裝:

官方下載:https://www.iis.net/downloads/microsoft/url-rewrite

image.png
點擊【保存文件】進行下載:
image.png
6.3-然後將這個剛剛下載的這個文件,複製到伺服器上進行安裝。
6.4-然後在Vue站點上,創建一個【web.config】文件,並拷貝以下配置信息。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Handle History Mode and custom 404/500" stopProcessing="true">
          <match url="(.*)" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="/" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

四、將項目部署在IIS進行代理

(1)打開IIS,新建一個站點。
image.png
(2)修改應用程式池,將.NET CLR版本改為【無托管代碼】,將托管管道模式改為【集成】。
image.png
image.png
(3)然後運行一下,已經成功了。
image.png
(4)如果出現以下問題,發現報錯了:

HTTP錯誤500.19 - Internal Server Error
無法訪問請求的頁面,因為該頁的相關配置數據無效。

image.png
4.1-先查看模塊是否能正常打開。
image.png
4.2-因為我們的項目是在桌面上,會存在許可權的不足,而報錯內容中也提出許可權不足,然後我們可以將項目放在其他的磁碟在進行部署。(是的,然後又出現一個錯誤)
image.png
解決(502.5錯誤):
image.png
4.3-將日誌打開,然後新建一個【Log】文件夾,然後重啟一個IIS,在日誌中找到錯誤。
image.png


五、將項目部署到Service服務中

5.1-部署到Service服務中(WebAPI項目)

下載地址:http://www.nssm.cc/download

(1)下載
image.png
(2)將下載好的壓縮包拷貝到伺服器中,進行解壓,然後選擇跟系統對應的版本。
image.png
(3)在此目錄下輸入"cmd",然後進入當前目錄。
image.png
(4)輸入命令然後會調出這個視窗。

nssm install
Path:C:\Program Files\dotnet\dotnet.exe

image.png
(5)以下操作:
5.1-輸入以下命名查看是否安裝成功:

nssm status 服務名稱

image.png

5.2-啟動

nssm start 服務名稱

image.png
image.png


5.2-NSSM常見命令

1. 安裝服務命令
nssm install <servicename>
nssm install <servicename> <program>
nssm install <servicename> <program> [<arguments>]

2. 刪除服務
nssm remove
nssm remove <servicename>
nssm remove <servicename> confirm

3. 啟動、停止服務
nssm start <servicename>
nssm stop <servicename>
nssm restart <servicename>

4. 查詢服務狀態
nssm status <servicename>

5. 服務控制命令
nssm pause <servicename>
nssm continue <servicename>
nssm rotate <servicename>


原文鏈接:https://www.cnblogs.com/kimiliucn/p/17630710.html

版權聲明:本文為原創文章,版權歸 [西瓜程式猿] 所有,轉載請註明出處,有任何疑問請私信咨詢。
原文鏈接:https://www.cnblogs.com/kimiliucn/p/17630710.html

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 作為.NET開發者,介面是C#必須掌握的知識點,介面是C#中實現多態和組件間互操作性的關鍵機制之一。 介面是一種抽象的類型,它定義了一組成員(方法、屬性、事件等)的規範,但沒有實現代碼。類可以實現一個或多個介面,以表明它們提供了特定的功能。 以下是每個.NET開發者應該掌握的C#介面知識點: **1 ...
  • ## 前言: 在當今信息化社會,網路數據分析越來越受到重視。而作為開發人員,掌握一門能夠抓取網頁內容的語言顯得尤為重要。在此篇文章中,將分享如何使用 .NET構建網路抓取工具。詳細瞭解如何執行 HTTP 請求來下載要抓取的網頁,然後從其 DOM 樹中選擇 HTML 元素,進行匹配需要的欄位信息,從中 ...
  • ## 引言 深拷貝是指創建一個新對象,該對象的值與原始對象完全相同,但在記憶體中具有不同的地址。這意味著如果您對原始對象進行更改,則不會影響到複製的對象 常見的C#常見的深拷貝方式有以下4類: 1. 各種形式的序列化及反序列化。 2. 通過反射機制獲取該對象的所有欄位和屬性信息。遍歷所有欄位和屬性,遞 ...
  • 本文介紹如何使用Centos伺服器部署Docker和Docker Compose. ### 背景信息 本文中的命令使用的是**root用戶**登錄執行, 若不是root用戶要註意許可權問題. 筆者這裡使用的是阿裡雲伺服器, Linux版本為Centos 7.9, 使用SSH遠程連接到伺服器. ### ...
  • ## 固件升級方案綜述 單片機的固件升級方式有很多種, 1、ICP:In Circuit Programing,簡單說就是在單片機開發時使用燒錄器升級程式,比如使用J-Link燒錄單片機程式。 2、ISP:In System Programing,在單片機內部實現了基於通信介面(如串口、I2C、SP ...
  • 開始之前簡單講下源和包管理器的概念,個人理解如下: 源就是平時我們win電腦上的360軟體管家、騰訊軟體管家、微軟商店這個意思,提供下載各類軟體包、安裝包的平臺; 包管理器就是win電腦上各類軟體的安裝包,例如qq.exe、360.msi等,需要下載後用指定的命令可以進行安裝、協助等操作,跟源配合使 ...
  • ## [Ooonly] 前情提要:需要刷寫一整個app程式,分包刷寫,每包位元組數為單數,要求CRC校驗正確。(晶元底層提供32位全字刷寫和16位半字刷寫,驅動只整合了32位全字刷寫函數) 使用32位刷寫函數出現的現象:通過keil5觀察記憶體空間發現一包刷寫成功一包刷寫失敗一包刷寫成功...一直迴圈到 ...
  • 提要:本系列文章主要參考`MIT 6.828課程`以及兩本書籍`《深入理解Linux內核》` `《深入Linux內核架構》`對Linux內核內容進行總結。 記憶體管理的實現覆蓋了多個領域: 1. 記憶體中的物理記憶體頁的管理 2. 分配大塊記憶體的伙伴系統 3. 分配較小記憶體的slab、slub、slob分 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...