IIS7中發佈網站到公網技巧與排錯

爲了最大化發揮硬件的優勢,把客戶的服務器升級到了Windows Server 2008,面臨把SharePoint 應用和ASP.NET網站遷移到IIS7中,從新發布到公網。這裏就談談如何在IIS7發佈ASP.NET網站到公網。爲了順利遷移,首先搭建了一個VMware虛擬機進行測試,在虛擬機中安裝了Windows Server 2008SQL ServerIIS7Server-U,然後把公網IP通過Nat映射到了虛擬機本地IP,域名解析重新配置,剩下的任務就是向II7發佈ASP.NET網站。下面我就總結闡述這個過程和遇到的問題。
首先進入IIS7管理界面,在網站上單擊右鍵選擇添加網站。如下圖:
 
打開添加網站界面,其中,網站名稱隨便命名一個合適的,應用程序池最好新建一個,物理路徑選擇要發佈的網站的路徑,綁定中的協議類型,這裏選擇http,還可以使用更加安全的httpsIP地址可以不同添,端口號這裏使用80端口,80端口是微軟優化過的端口,所以常常也被其他軟件或者服務佔用,當然也可以用其他的端口,主機名可以不填,也可以填。如下圖:
 
 
單擊確定後可能會提示下圖,原因是添加網站時候選擇了立即啓動網站,但是已經存在的網站已經使用了80端口,不過沒關係,單擊是,TestSite網站不會啓動而已:
 
經過上面2個步驟一個網站就建立好了。不過TestSite網站不是我真正想要發佈的網站,這裏只是爲了演示如何在II7建立一個網站。爲了發佈客戶的網站,在IIS7中按照上面步驟重新建立要發佈到公網的客戶網站xxxWebApp,當然xxxWebApp使用的端口也是80端口,爲了不衝突,把其他佔用80端口的網站都停止了。然後啓動xxxWebApp網站,但是提示“另一個程序正在使用此文件,進程無法訪問。 (異常來自 HRESULT:0x80070020)”,導致xxxWebApp網站無法啓動:
 
 
難道還有程序佔用80端口?爲了檢測哪些程序或服務還在使用80端口,可以使用netstat -nao命令,如下圖:

查到PID1088的程序或服務在使用80端口。爲了查看PID1088的程序或服務是誰,通過Windows任務管理器來查看,PID列默認沒有顯示出來,必須要在查看-選擇列中選中PID,如下圖:
 
 
啓用PID列後,然後在進程和服務中仔細的查找PID1088的進程或服務,結果發現,Server-U的進程和服務同時使用了80端口。如下圖:
 
 
都是Server-U惹的禍,你這個FTP呀,先關了你再說。重新啓動xxxWebApp網站,成功!

 

我們知道在IIS6時,網站創建後,必須要配置ASP.NET的版本,默認文檔,權限等,爲了測試IIS7的新功能,這裏就先不管它。
接着在IE中訪問xxxWebApp網站的公網IP。出現錯誤“服務器錯誤 403-禁止訪問:訪問本拒絕。您使用所提供的憑據無查看此目錄或頁面”,如下:
 
 
這又是一個很典型的問題,說明沒有權限訪問xxxWebApp網站的目錄,可以通過“目錄瀏覽”來啓動,雙擊“目錄瀏覽”如下圖:
 
 
目錄瀏覽默認處在禁用狀態如下圖:
 
 
選擇點擊啓動,如下圖:
 
 
再次訪問xxxWebApp網站的公網域名,可以訪問了,但是打開的是xxxWebApp所有的根目錄文件列表,這又是很典型的問題,說明還沒有設置默認文檔,爲了設置默認文檔,雙擊“默認文檔”,如下圖:
 
 
因爲xxxWebApp網站首頁是Index.aspx,默認文檔中並沒有這個頁面,如下圖:
 
 
點擊添加,添加Index.aspx到默認文檔,這裏添加默認文檔可以在全局也可以在某個網站上,如果在全局添加,那麼新添加的默認文檔就會出現在各個網站的默認文檔中,如果在某個網站添加,那麼只出現在某個網站。如下圖:
 
 
再次訪問xxxWebApp網站,成功!
 
 
事實上,爲了避免在IIS7中出現錯誤“服務器錯誤 403-禁止訪問:訪問本拒絕。您使用所提供的憑據無查看此目錄或頁面”,可以不用啓用“目錄瀏覽”的權限,只需要直接配置默認文檔就可以了。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章