對(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 打開(kāi)一個(gè)可運(yùn)行的 ASP.NET 項(xiàng)目,
右鍵解決方案清理解決方案 => 重新生成解決方案。
如果項(xiàng)目有錯(cuò)誤,這里會(huì)顯示報(bào)錯(cuò)。沒(méi)有錯(cuò)誤,則重新生成成功。
也可以本地直接啟動(dòng),訪問(wèn)調(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è)包通過(guò) Visual Studio 編譯生成。
我們用 Visual Studio 打開(kāi)剛剛驗(yàn)證過(guò)的項(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ì)開(kāi)始編譯,控制臺(tái)顯示發(fā)布狀態(tài),發(fā)布完成會(huì)有提示。
項(xiàng)目發(fā)布完成后,打開(kāi)該文件夾,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 頁(yè)面;
- 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)跳到如下頁(yè)面:
把我選的都勾了。
然后安裝。
2、調(diào)試IIS是否正常運(yùn)行
安裝好以后,調(diào)試瀏覽器,輸入 localhost 訪問(wèn),出現(xiàn)IIS說(shuō)明安裝成功
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)站主頁(yè)
如果網(wǎng)頁(yè)發(fā)布文件夾根目錄下沒(méi)有放置 index.aspx(或其他名為index的默認(rèn)頁(yè)面文件),則需要配置默認(rèn)文檔來(lái)決定首頁(yè)展示,不配置會(huì)提示 404(頁(yè)面無(wú)法找到)
此處,默認(rèn)文檔是用來(lái)決定網(wǎng)站主頁(yè)的配置項(xiàng)。
5、開(kāi)啟服務(wù)器防火墻入站規(guī)則
下面是打開(kāi)IIS服務(wù)器外網(wǎng)防火墻。
非80端口發(fā)布的項(xiàng)目,設(shè)置了對(duì)應(yīng)端口的入站規(guī)則才可以訪問(wèn)到。
控制面板 =>?系統(tǒng)和安全 => Windows防火墻 => 高級(jí)設(shè)置 => 入站規(guī)則 => 新建規(guī)則
填寫(xiě)我們發(fā)布項(xiàng)目的端口。
開(kāi)放90端口,因?yàn)槲疫@個(gè)網(wǎng)站上面設(shè)定的是90端口。
后面一直點(diǎn)到完成,名稱我起的是 netweb。
完成之后我們可以在入站規(guī)則里看到我們剛剛設(shè)置的端口,雙擊可以看到我們的配置
防火墻開(kāi)啟完成。
、
我們?cè)诜?wù)器用瀏覽器調(diào)試 localhost:90
啟動(dòng)成功。
三、常見(jiàn)問(wèn)題與解決
我們?cè)龠M(jìn)行本地調(diào)試,也遇到了幾個(gè)問(wèn)題
問(wèn)題一:配置節(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ì)鎖,不妨兩條都解鎖一下。
問(wèn)題二:HTTP錯(cuò)誤 404.3
問(wèn)題二出現(xiàn)的原因,一般是你看了別人家的教程,沒(méi)有在我前面那樣添加全面的服務(wù)器功能,回到我上面講的地方,把該安裝的都裝了。
問(wèn)題三:發(fā)布后的網(wǎng)站不能訪問(wèn)
測(cè)試本地瀏覽器輸入localhost:90 是否可以訪問(wèn),如果可以訪問(wèn),說(shuō)明項(xiàng)目是正常運(yùn)行的。這種情況應(yīng)該是被攔截了,看看服務(wù)器的防火墻規(guī)則和云服務(wù)器控制臺(tái)的安全組有沒(méi)有打開(kāi)對(duì)應(yīng)的端口。
經(jīng)過(guò)排查,發(fā)現(xiàn)是我定義項(xiàng)目端口為 90,但是云服務(wù)器控制臺(tái)的安全組里忘記開(kāi)放 90 端口了,打開(kāi)即可。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-789054.html
至此,ASP.NET在云服務(wù)器上的發(fā)布教程結(jié)束。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-789054.html
到了這里,關(guān)于C#進(jìn)階-IIS服務(wù)器發(fā)布ASP.NET項(xiàng)目的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!