IIS服務(wù)器發(fā)布ASP.NET項(xiàng)目
對(duì)于云服務(wù)器,程序員一般不會(huì)陌生,如果項(xiàng)目需要發(fā)布到現(xiàn)網(wǎng),那么服務(wù)器是必不可缺的一項(xiàng)硬性條件,那么如何在云服務(wù)器上部署一個(gè)項(xiàng)目,需要做哪些配置準(zhǔn)備,下面就由本文檔為大家講解,本篇以 IIS服務(wù)器 發(fā)布 ASP.NET 項(xiàng)目為例。
一、準(zhǔn)備項(xiàng)目的發(fā)布版本
1、檢查項(xiàng)目是否可運(yùn)行
本地用 Visual Studio 打開一個(gè)可運(yùn)行的 ASP.NET 項(xiàng)目,
右鍵解決方案清理解決方案 => 重新生成解決方案。
如果項(xiàng)目有錯(cuò)誤,這里會(huì)顯示報(bào)錯(cuò)。沒有錯(cuò)誤,則重新生成成功。
也可以本地直接啟動(dòng),訪問調(diào)試看看能不能順利運(yùn)行。
2、打包項(xiàng)目
我們發(fā)布 ASP.NET 項(xiàng)目,就是將打包后的項(xiàng)目包復(fù)制到在服務(wù)器的發(fā)布文件夾內(nèi),因此,我們需要準(zhǔn)備可發(fā)布的項(xiàng)目包,這個(gè)包通過 Visual Studio 編譯生成。
我們用 Visual Studio 打開剛剛驗(yàn)證過的項(xiàng)目, 選中項(xiàng)目的啟動(dòng)模塊(名字加粗的模塊),鼠標(biāo)右鍵,點(diǎn)擊發(fā)布。
發(fā)布時(shí)選擇發(fā)布文件夾的路徑,項(xiàng)目的 Release 版本會(huì)生成在這個(gè)文件夾里。
記住發(fā)布的目標(biāo)文件夾位置。
點(diǎn)擊發(fā)布,項(xiàng)目會(huì)開始編譯,控制臺(tái)顯示發(fā)布狀態(tài),發(fā)布完成會(huì)有提示。
項(xiàng)目發(fā)布完成后,打開該文件夾,cwfpublish 是我們的發(fā)布文件夾。
把整個(gè)文件夾(cwfpublish)復(fù)制到云服務(wù)器上。
3、項(xiàng)目包內(nèi)容介紹
bin 目錄是應(yīng)用程序目錄,里面默認(rèn)裝的是 所有.cs文件的編譯版本(.dll文件),包含每個(gè)模塊的.dll文件和.pdo緩存文件,每次我們修改 .cs 文件或者引入 nuget 包,bin目錄都會(huì)發(fā)生變化,需要重新發(fā)布才能生效;configs 目錄一般是存放 log4j.config 等配置文件;css 目錄存放前端樣式文件;images 目錄存放靜態(tài)圖片;js 目錄存放前端 JavaScript 代碼;Map 目錄存放 MyBatis框架 封裝的 .xml文件;pages 目錄存放前端 .aspx 頁面;Template 目錄存放模板文件,比如復(fù)用頻率高的 html模板、郵件模板等等;themes 目錄存放靜態(tài)資源文件(主題類css/js/images)global.asax 是 ASP.NET 自帶的全局文件,里面可以自定義生命周期內(nèi)的動(dòng)作;packages.config 是項(xiàng)目引用包的包名和包的版本信息;
二、服務(wù)器搭建ASP.NET運(yùn)行環(huán)境
1、服務(wù)器安裝IIS運(yùn)行環(huán)境
控制面板 => 程序,啟動(dòng)或關(guān)閉Windows功能。
服務(wù)器會(huì)自動(dòng)跳到如下頁面:
把我選的都勾了。
然后安裝。
2、調(diào)試IIS是否正常運(yùn)行
安裝好以后,調(diào)試瀏覽器,輸入 localhost 訪問,出現(xiàn)IIS說明安裝成功
3、發(fā)布項(xiàng)目
進(jìn)入服務(wù)器管理器,右鍵進(jìn)入IIS管理器
添加網(wǎng)站。
注意這里端口和tomcat的端口類似,我tomcat端口教70,這里使用90避免端口沖突;物理路徑就是剛剛asp文件發(fā)布的位置;網(wǎng)站名稱隨意;
到此網(wǎng)站基本發(fā)布完成。
4、設(shè)置網(wǎng)站主頁
如果網(wǎng)頁發(fā)布文件夾根目錄下沒有放置 index.aspx(或其他名為index的默認(rèn)頁面文件),則需要配置默認(rèn)文檔來決定首頁展示,不配置會(huì)提示 404(頁面無法找到)
此處,默認(rèn)文檔是用來決定網(wǎng)站主頁的配置項(xiàng)。
5、開啟服務(wù)器防火墻入站規(guī)則
下面是打開IIS服務(wù)器外網(wǎng)防火墻。
非80端口發(fā)布的項(xiàng)目,設(shè)置了對(duì)應(yīng)端口的入站規(guī)則才可以訪問到。
控制面板 => 系統(tǒng)和安全 => Windows防火墻 => 高級(jí)設(shè)置 => 入站規(guī)則 => 新建規(guī)則
填寫我們發(fā)布項(xiàng)目的端口。
開放90端口,因?yàn)槲疫@個(gè)網(wǎng)站上面設(shè)定的是90端口。
后面一直點(diǎn)到完成,名稱我起的是 netweb。
完成之后我們可以在入站規(guī)則里看到我們剛剛設(shè)置的端口,雙擊可以看到我們的配置
防火墻開啟完成。
我們?cè)诜?wù)器用瀏覽器調(diào)試 localhost:90
啟動(dòng)成功。
三、常見問題與解決
我們?cè)龠M(jìn)行本地調(diào)試,也遇到了幾個(gè)問題
問題一:配置節(jié)被父級(jí)鎖定
因?yàn)?IIS 7 采用了更安全的 web.config 管理機(jī)制,默認(rèn)情況下會(huì)鎖住配置項(xiàng)不允許更改。
解決方法:
以管理員身份運(yùn)行命令行:
C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers 。
C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
其中的 handlers、是錯(cuò)誤信息中紅字顯示的節(jié)點(diǎn)名稱,一般modules也會(huì)鎖,不妨兩條都解鎖一下。
問題二:HTTP錯(cuò)誤 404.3
問題二出現(xiàn)的原因,一般是你看了別人家的教程,沒有在我前面那樣添加全面的服務(wù)器功能,回到我上面講的地方,把該安裝的都裝了。
問題三:發(fā)布后的網(wǎng)站不能訪問
測(cè)試本地瀏覽器輸入localhost:90 是否可以訪問,如果可以訪問,說明項(xiàng)目是正常運(yùn)行的。這種情況應(yīng)該是被攔截了,看看服務(wù)器的防火墻規(guī)則和云服務(wù)器控制臺(tái)的安全組有沒有打開對(duì)應(yīng)的端口。
經(jīng)過排查,發(fā)現(xiàn)是我定義項(xiàng)目端口為 90,但是云服務(wù)器控制臺(tái)的安全組里忘記開放 90 端口了,打開即可。
到此這篇關(guān)于IIS服務(wù)器發(fā)布ASP.NET項(xiàng)目的文章就介紹到這了,更多相關(guān)IIS發(fā)布ASP.NET內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ASP.Net刷新頁面后自動(dòng)滾動(dòng)到原來位置方法匯總
本文給大家匯總了3種ASP.Net實(shí)現(xiàn)的刷新頁面后自動(dòng)滾動(dòng)到原來位置方法,十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。2015-06-06詳解ASP.NET Core 之 Identity 入門(三)
本篇文章主要介紹了ASP.NET Core 之 Identity 入門,主要負(fù)責(zé)對(duì)用戶的身份進(jìn)行認(rèn)證,有興趣的可以了解一下。2016-12-12visual Studio 2017創(chuàng)建簡(jiǎn)單控制臺(tái)程序
這篇文章主要為大家詳細(xì)介紹了visual Studio 2017創(chuàng)建簡(jiǎn)單控制臺(tái)程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11WPF使用VisualTreeHelper進(jìn)行命中測(cè)試
這篇文章介紹了WPF使用VisualTreeHelper進(jìn)行命中測(cè)試的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04ASP.NET實(shí)現(xiàn)QQ、微信、新浪微博OAuth2.0授權(quán)登錄
本文主要介紹了QQ、微信、新浪微博OAuth2.0授權(quán)登錄的示例,主要就是GET、POST遠(yuǎn)程接口,返回相應(yīng)的數(shù)據(jù),這里列出相關(guān)的代碼,供大家參考。2016-03-03詳解.NET6下的Modbus通訊和數(shù)據(jù)庫記錄
本文主要介紹了.NET6下的Modbus通訊和數(shù)據(jù)庫記錄,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04