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