爲了最大化發揮硬件的優點,把客戶的服務器升級到了Windows Server 2008,面臨把SharePoint 應用和ASP.NET網站遷移到IIS7中,重新發布到公網。這裏就談談如何在IIS7發佈ASP.NET網站到公網。爲了順利遷移,首先搭建了一個VMware虛擬機進行測試,在虛擬機中安裝了Windows Server 2008,SQL Server,IIS7,Server-U,而後把公網IP經過Nat映射到了虛擬機本地IP,域名解析從新配置,剩下的任務就是向II7發佈ASP.NET網站。下面我就總結闡述這個過程和遇到的問題。
首先進入IIS7管理界面,在網站上單擊右鍵選擇添加網站。以下圖:
打開添加網站界面,其中,網站名稱隨便命名一個合適的,應用程序池最好新建一個,物理路徑選擇要發佈的網站的路徑,綁定中的協議類型,這裏選擇http,還可使用更加安全的https,IP地址能夠不一樣添,端口號這裏使用80端口,80端口是微軟優化過的端口,因此經常也被其餘軟件或者服務佔用,固然也能夠用其餘的端口,主機名能夠不填,也能夠填。以下圖:
單擊肯定後可能會提示下圖,緣由是添加網站時候選擇了當即啓動網站,可是已經存在的網站已經使用了80端口,不過不要緊,單擊是,TestSite網站不會啓動而已:
通過上面2個步驟一個網站就創建好了。不過TestSite網站不是我真正想要發佈的網站,這裏只是爲了演示如何在II7創建一個網站。爲了發佈客戶的網站,在IIS7中按照上面步驟從新創建要發佈到公網的客戶網站xxxWebApp,固然xxxWebApp使用的端口也是80端口,爲了避免衝突,把其餘佔用80端口的網站都中止了。而後啓動xxxWebApp網站,可是提示「另外一個程序正在使用此文件,進程沒法訪問。 (異常來自 HRESULT:0x80070020)」,致使xxxWebApp網站沒法啓動:
難道還有程序佔用80端口?爲了檢測哪些程序或服務還在使用80端口,可使用netstat -nao命令,以下圖:
查到PID爲1088的程序或服務在使用80端口。爲了查看PID爲1088的程序或服務是誰,經過Windows任務管理器來查看,PID列默認沒有顯示出來,必需要在查看-選擇列中選中PID,以下圖:
啓用PID列後,而後在進程和服務中仔細的查找PID爲1088的進程或服務,結果發現,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-
禁止訪問:訪問本拒絕。您使用所提供的憑據無查看此目錄或頁面」,能夠不用啓用「目錄瀏覽」的權限,只須要直接配置默認文檔就能夠了。