.NET + Vue3 的前后端項目在IIS的發布

目錄

一、發布準備

1、安裝 IIS

2、安裝 Windows Hosting Bundle(.NET Core 托管捆綁包)

3、安裝 IIS URL Rewrite

二、項目發布

1、后端項目發布

2、前端項目發布

3、將項目部署到 IIS中

三、網站配置

1、IP配置

2、防火墻配置

3、跨域配置

4、web.config 文件配置

四、常見錯誤處理

1、CORS 錯誤

2、404.0錯誤

3、405錯誤

4、500.32錯誤


一、發布準備

想要發布一個項目,首先就要有一個可以正常運行的項目,這個肯定是必須的。廢話不多說,下面跟著我一起在 IIS 發布一個項目吧。

1、安裝 IIS

在搜索欄搜索 "windows 功能" ,打開找到里面的 “Internet Information serices” 和 “Internet Information Services 可承載的 Web 核心”。將其選上點擊[確定]。

在安裝 IIS 后,可以重啟一下電腦,不然后面可能會報錯。

2、安裝 Windows Hosting Bundle(.NET Core 托管捆綁包)

點擊官網下載 Windows Hosting Bundle

點擊下載后安裝,一直下一步傻瓜式安裝。下同。

3、安裝 IIS URL Rewrite

根據自己的電腦旋轉下載?IIS URL Rewrite。

點擊官網下載 IIS URL Rewrite

二、項目發布

1、后端項目發布

1)在項目中,右鍵項目,在彈出框中點擊 [發布]。

2)選擇 [文件夾] 后,點擊 [下一步]

3)然后可以修改文件位置,點擊 [完成]。

4)可以重命名文件夾,然后點擊 [顯示所有設置],進行設置。

5)設置 部署模式 和 目標運行時,設置后點擊保存。

部署模式有兩種模式,即依賴框架和獨立,兩者的區別大致為以來框架模式部署后需要目標電腦有運行環境,而獨立模式部署后是一個獨立的軟件,可以直接使用而不需要用戶另外安裝運行環境。

重要:(踩坑)在設置 目標運行時 的時候,一定要根據自己的電腦來選擇,不然后面部署后會報錯。

6)最后點擊 [發布],等待發布完成。

7)在發布完成后,項目文件中多了個 【publish】文件夾,里面全是發布好后的 .dll 文件和配置文件。這個文件夾名稱與步驟 2)中的文件夾命名一致。

2、前端項目發布

在vue 項目的終端,使用命令 npm run build 打包項目。

npm run build

在命令執行完成之后,會在項目目錄中有一個?dist 文件,這個就是前端打包好文件夾。

3、將項目部署到 IIS中

1)在 C 盤外的其它盤中新建一個文件夾,將前面發布項目得到的文件中的內容復制到這個文件夾中來。如果是放在 C盤,那么后面在文件操作的時候,會因為 IIS操作 C盤的權限帶來功能上的錯誤,如文件的訪問、修改和刪除。

2)打開 IIS,在 IIS的 [網站] 中 [右鍵] 添加網站。在配置好網站后,點擊 [確定] 后網站就創建成功了。這里端口一定要修改,避免端口已經被使用后出現報錯。

3)在 [應用程序池] 中,選中部署的項目,分別設置 .NET CLR版本 和 托管管理模式。重啟網站,就可以點擊瀏覽網站了。

三、網站配置

1、IP配置

1)安裝 win + R鍵,輸入cmd打開命令行工具。

2)在命令行工具中輸入 ipconfig 查看本機 IP 信息。

3)在 IIS 的網站中,選擇部署的項目,點擊 [綁定] ,分別配置 IP 地址。IP 地址為本地的 IP。

2、防火墻配置

項目部署后,如果想要在多臺設備上進行訪問,那么需要進行防火墻配置,允許其它設備訪問服務器的網址的端口。

1)在防火墻設置中,點擊 [高級設置]?

2)在?[入站規則] 新建規則,選擇 [端口] 后點擊[下一步]。

3)根據需要,選擇數據傳輸協議,配置端口。這里的端口是網站中配置的端口,必須保持一致。

下一步后,選擇 [允許連接],然后在下一步,默認全部,然后再下一步,命名規則,并進行描述。

3、跨域配置

4、web.config 文件配置

Vue3使用 npm run build 命令發布后,生成的 dist中,可能會沒有 web.config配置文件,需要我們手動配置。新建 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>

四、常見錯誤處理

1、CORS 錯誤

報 CORS錯誤是由瀏覽器的同源策略引起的,即跨域問題。有時候明明在后端代碼中正確地配置了跨域,但是部署后它還是報這個錯誤,至于是什么原因,暫時還不知道是什么原因。既然知道這報這個錯誤是跨域的問題,那么只需要在后端項目的配置文件中配置跨域就可以了。

找到 web.config文件,添加下面代碼。

 <httpProtocol><customHeaders><!--響應類型 (用逗號隔開,對預檢請求的應答中明確了客戶端所要訪問的資源允許使用的方法或方法列表GET,HEAD,POST,PUT,DELETE,CONNECT,OPTIONS,TRACE,PATCH)--><add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS"/><!--響應頭設置(用于預檢請求中,列出了將會在正式請求的 Access-Control-Request-Headers 字段中出現的首部信息。注意以下這些特定的首部是一直允許的:Accept, Accept-Language, Content-Language, Content-Type (但只在其值屬于 MIME 類型 application/x-www-form-urlencoded, multipart/form-data 或 text/plain中的一種時)無需特意聲明。)--><add name="Access-Control-Allow-Headers" value="x-requested-with,content-type"/><!--響應頭指定了該響應的資源是否被允許與給定的origin共享,對于不需具備憑證(credentials)的請求,服務器會以“*”作為通配符,從而允許所有域都具有訪問資源的權限,如需指定域則可以設置允許跨域訪問的網址。--><add name="Access-Control-Allow-Origin" value="*" /><remove name="X-UA-Compatible"/><!--<add name="X-UA-Compatible" value="IE=8;IE=10;IE=9"/>--><add name="X-UA-Compatible" value="IE=11;IE=10;IE=9"/></customHeaders>
</httpProtocol>

2、404.0錯誤

這個錯誤是你項目文件夾中沒有項目導致的,看看你的網址指向的物理路徑是否正確,在指向的這個文件夾中是否有項目存在。

3、405錯誤

網址部署好后,想測試網址的功能是否正常,發現網址的數據獲取和新增功能都正常,但當修改和刪除數據時,發現網址報405錯誤,這是什么原因造成的呢?

其實,這是因為?IIS默認注冊了一個名為"WebDAVModule"的自定義HttpModule,它會默認拒絕 HTTP 的 PUT、DELETE請求,只允許 HTTP的 GET、POST請求。想要解決這個問題也很簡單:

在 IIS的網站中,找到 [模塊]后點擊 [打開功能],找到?WebDAVModule,將其刪除即可。

如果將?WebDAVModule 刪除后發現還是報這個錯誤,那么在項目文件中,打開 web.config文件,在?system.webServer 里面添加?modules,將?HttpModule 移除。

<configuration><system.webServer><modules runAllManagedModulesForAllRequests="true"><remove name="webDAVModule"/></modules><system.webServer>
</configuration>

作用是移除 IIS 中的 "WebDAVModule" 模塊,并允許所有請求運行托管模塊。這個配置適用于需要使用 PUT 和 DELETE 請求的應用程序或需要托管模塊對所有請求進行處理的情況。

4、500.32錯誤

1)在程序應用池中,找到對應的網站,在 [基礎設置] 中把 [.NET CLR版本] 設置成 [五代碼托管]和 [托管管理模式] 設置成 [集成] 。

2)然后在 [高級設置] 中,把 [啟用 32位應用程序] 的值設置成 [false],然后下滑,找到 [標識],將 [標識] 的值設置成 [LocalSystem]。

完成上面的設置后,重啟網站,如果開始報這個錯誤,那么就要考慮你的項目發布的問題了,重新發布一次項目。

重新發布項目時,要特別注意發布配置,[目標運行時] 的配置一定得跟 服務器的一致。

最近發布了一個項目,踩了很多坑,值得做一個筆記,免得以后還往坑里面跳。希望這個筆記能給讀者帶來幫助,如果你也在發布項目時踩了坑,歡迎在評論區分享,讓我們一起避坑,一起學習成長。


好記性不如爛筆頭,在學習的路上留下點痕跡。希望能給大家帶來幫助,也期待您的點贊和討論。

若有不足之處,還請斧正。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70528.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70528.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70528.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

指定定網卡名稱

一、PCIe網卡名稱指定 原理&#xff1a;利用udev規則匹配PCIe設備的硬件特征&#xff08;如總線位置、MAC地址等&#xff09;&#xff0c;覆蓋默認命名規則 4 。 步驟&#xff1a; 獲取設備信息&#xff1a; Bash udevadm info -a -p /sys/class/net/<原設備名> # 如e…

【python】解析自動化腳本文件并按照=測試周期=存儲記錄

【python】連接Jira獲取token以及jira對象 【python】解析自動化腳本文件并按照測試周期存儲記錄 【python】向Jira推送自動化用例執行成功 【python】向Jira測試計劃下&#xff0c;附件中增加html測試報告 將已編寫的自動化測試用例按照jira號解析出來&#xff0c;并按照測試計…

Linux驅動開發之音頻驅動與基礎應用編程

目錄 CODEC芯片 音頻編碼 I2S總線接口 數字音頻接口(DAI) 設備樹配置 ALSA 音頻相關概念 應用程序編寫 運行測試 CODEC芯片 音頻若想被CPU“聽到”&#xff0c;就必須轉換為CPU能夠“聽懂”的語言&#xff0c;即二進制數據的0和1。在信號處理領域&#xff0c;聲音是模…

在 Java 中解析 JSON 數據

例子解析以下JSON數據 {"code":0,"msg":"成功","data": [{ "host":"1068222.com", "port":"", "m_token":"490e20e70e7de5f21a24b14c12a393f6", "categ…

python——集合(一)

文章目錄 集合 set創建集合訪問集合項in關鍵字添加集合元素刪除集合元素復制集合使用操作符對集合進行交集、并集、差集、對稱差集使用方法對集合進行交集、并集、差集、對稱差集子集和超集 frozenset 凍結集合&#xff1f; 不可變集合&#xff01; 集合 set 什么是集合&#…

DeepSeek 與網絡安全:AI 在網絡安全領域的應用與挑戰

&#x1f4dd;個人主頁&#x1f339;&#xff1a;一ge科研小菜雞-CSDN博客 &#x1f339;&#x1f339;期待您的關注 &#x1f339;&#x1f339; 1. 引言 在當今數字化時代&#xff0c;網絡安全已成為國家、企業和個人面臨的重要挑戰。從傳統的病毒、木馬攻擊&#xff0c;到高…

【Blender】二、建模篇--05,陣列修改器與晶格形變

陣列修改器是bender里面一個比較常用的修改器,所以我們單獨開口來講,我們會先從幾片樹葉出發,然后我們用陣列修改器把這幾片樹葉變成這樣的造型和這樣的造型。這兩個造型分別就代表著陣列修改器最常用的兩種偏移方法,我們現在就開始我們先來做幾個樹葉。 1.樹葉建模 首先…

【Python 專題】數據結構 樹

LeetCode 題目104. 二叉樹的最大深度(gif 圖解)方法一:后序遍歷(DFS)方法二:層序遍歷(BFS)872. 葉子相似的樹(DFS 遍歷)1448. 統計二叉樹中好節點的數目(DFS 遍歷)437. 路徑總和 III(前綴和 + DFS 回溯)1372. 二叉樹中的最長交錯路徑(DFS)236. 二叉樹的最近公共…

Linux下基本指令(4)

Linux權限的概念 Linux下有兩種用戶&#xff1a;超級用戶&#xff08;root&#xff09;、普通用戶。 超級用戶&#xff1a;可以再linux系統下做任何事情&#xff0c;不受限制 普通用戶&#xff1a;在linux下做有限的事情。 超級用戶的命令提示符是“#”&#xff0c;普通用戶…

ubuntu部署小筆記-采坑

ubuntu部署小筆記 搭建前端控制端后端前端nginx反向代理使用ubuntu部署nextjs項目問題一 如何訪問端口號配置后臺運行該進程pm2 問題二 包體過大生產環境下所需文件 問題三 部署在vercel時出現的問題需要魔法訪問后端api時&#xff0c;必須使用https協議電腦端訪問正常&#xf…

【聯盛德 W803-Pico 試用】簡介、工程測試

【聯盛德 W803-Pico 試用】簡介、工程測試 本文介紹了聯盛德微電子 W803-Pico 開發板的基本信息、環境搭建、工程測試等內容。簡介包含開發板功能、主控參數及特點、開發板原理圖等信息&#xff0c;工程測試包括 Blink、串口打印等方案的演示。 活動詳情&#xff1a;聯盛德問答…

cursor使用記錄

一、如何查看自己登錄的是哪個賬號 操作路徑&#xff1a;Cursor -- 首選項 -- Cursor Setting &#xff08;有快捷鍵&#xff09; 二、狀態修改為豎排&#xff08;默認是橫排&#xff09; 默認如圖展示&#xff0c;想要像vscode、idea等等在左側豎著展示 操作路徑&#xff1…

gitlab 解決雙重認證無法登錄remote: HTTP Basic: Access denied.

問題&#xff1a;gitlab開啟了雙因素認證 如進行了 OAuth configuration 在進行git操作時如下提示 remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead o…

C語言基礎學習指南:從零入門到實戰應用——適合零基礎學習者與進階鞏固

目錄 一、C語言概述與開發環境搭建 二、核心語法與數據類型 三、控制結構與運算符 四、函數與模塊化編程 五、指針與內存管理 六、實踐建議與資源推薦 結語 一、C語言概述與開發環境搭建 C語言是一種高效、靈活的通用編程語言&#xff0c;廣泛應用于系統開發、嵌入式系…

C# 委托——lambda

lambda表達式不簡化寫起來和匿名函數很像&#xff0c;而匿名函數通常賦值給委托&#xff0c;通過委托進行調用。以下我們對lambda和委托的基本規則與使用進行整理&#xff0c;同時為了加深理解和記憶&#xff0c;我們整理了委托是如何一步步演化到lambda。 1. 委托 委托是一個…

【每日論文】TESS 2: A Large-Scale Generalist Diffusion Language Model

下載PDF或閱讀論文&#xff0c;請點擊&#xff1a;LlamaFactory - huggingface daily paper - 每日論文解讀 | LlamaFactory | LlamaFactory 摘要 我們推出了TESS 2&#xff0c;這是一種通用的指令跟隨擴散語言模型&#xff0c;其性能優于當代的指令調整擴散模型&#xff0c;有…

conda 配置源

無論是Anaconda vs Miniconda vs Miniforge 中的哪個&#xff0c;只要使用conda就涉及源&#xff0c;換源的目的是為了加速包的獲取 修改配置文件 通過修改用戶目錄下的 .condarc 文件來使用 不同系統下的 .condarc 目錄如下&#xff1a; Linux: ${HOME}/.condarcmacOS: ${…

AI大模型發展對語音直播交友系統源碼開發搭建的影響

近年來&#xff0c;AI大模型技術突飛猛進&#xff0c;為語音直播交友系統的源碼開發搭建帶來了深遠影響。本文將從技術發展層面&#xff0c;探討AI大模型如何賦能語音直播交友系統&#xff0c;并分析其對開發流程、功能實現和用戶體驗等方面帶來的變革。 一、技術賦能&#xff…

C++面試題,TCP和UDP方面(1)

個人主頁 &#xff1a; 個人主頁 個人專欄 &#xff1a; 《數據結構》 《C語言》《C》《Linux》《網絡》 《redis學習筆記》 文章目錄 前言TCP和UDP的區別UDP如何實現可靠TCP滑動窗口原理TCP流量控制TCP超時重傳總結 前言 這是個人總結的C方向的面試題,TCP和UDP方面&#xff0…

Huatuo熱更新--如何使用

在安裝完huatuo熱更新插件后就要開始學習如何使用了。 1.創建主框漸Main 新建文件夾Main&#xff08;可自定義&#xff09;&#xff0c;然后按下圖創建文件&#xff0c;注意名稱與文件夾名稱保持一致 然后新建場景&#xff08;Init場景&#xff09;&#xff0c;添加3個空物體…