前篇文章說明了IIS5的HTTP 500內部伺服器錯誤的解決,IIS伺服器出錯的原因是複雜的。象服務啟動失敗、IIS進程中斷或站點無法啟動這些錯誤都會在系統日誌中記錄一個錯誤事件。不論IIS出現何種錯誤,在確定排錯方案之前,都應先使用事件檢視器查閱系統日誌所記錄的相關事件。
某些錯誤顯然是由伺服器硬體的損壞而造成的,而另一些由於軟體原因造成的錯誤往往不易察覺。本節就一般性的IIS排錯提供指導性的介紹。
重新啟動IIS
依照微軟產品的一般性排錯方法和故障解決方案,大多數軟體問題可以透過重新啟動到方法得以解決。作為IIS5.0的新功能之一,我們可以在不重新啟動電腦的情況下重啟IIS服務,甚至相當嚴重的問題都可以採用這種方法解決。重新啟動IIS服務可以強迫系統重置IIS進程的記憶體空間,故由於記憶體錯誤造成的問題可以解決。重啟IIS的方法主要用於下列情況:網站應用程式癱瘓且無法有效加以控制;網站應用程式運作不正常或不穩定。 [/TD] [/TR][/TABLE]重新啟動IIS服務的過程中,全部目前連線都無法保留,且重新啟動期間伺服器上的全部網站都無法運作。如果重啟IIS服務無法解決問題,重啟伺服器亦不會有效。
當網站應用程式無法正常運作時,請按照下述步驟重新啟動伺服器的IIS服務:
1.在IIS管理控制樹中展開IIS節點,選擇需要重新啟動IIS服務的電腦。
2.點選【操作】選單,選擇【重新啟動IIS】。
3.在【停止/啟動/重新啟動】對話框中的【您向要IIS做什麼】下拉清單中選擇【重新啟動伺服器的IIS】 ,按一下【確定】。
4.關閉】對話方塊顯示重新啟動IIS的進度,如果對話方塊長時間沒有反應,按一下【現在結束】並重新進行上述操作。
注意:不能使用基於HTML的IIS管理器(遠端管理模式)進行上述重新啟動操作。
對於單一站點的穩定性問題,不必重新啟動整個IIS進程,只要重新啟動站點即可。
IIS排錯
備份/還原IIS
如果世界上存在一個萬無一失的伺服器安全規劃方案,那就是備份。曾經有人指出:優秀的系統管理員所做的最重要的三項工作就是:備份、備份、備份。
IIS的實作機制包含一個類似登錄的元資料庫:MetaBase,有關IIS本身和網站的設定屬性全部保存在Windows 2000和元資料庫MetaBase中。因此,只要將相關的註冊表和元資料庫進行備份,即可保存網站相關的全部配置。即使在刪除網站甚至重新安裝IIS之後,仍然能夠利用備份還原到原來的狀態。
備份IIS的步驟如下:
1.在IIS管理器中展開IIS節點,選擇向要備份的電腦。
2.點選【動作】選單,選擇【備份/還原配置】。
3.在【備份/還原設定】對話方塊中的【備份】清單中列出全部備份檔案以及備份時間。點選【建立備份】按鈕。
4.在【備份設定】對話方塊中指定新備份的名稱,按一下【確定】。
5.點選【關閉】完成備份。
預設情況下,備份檔案將保存在Winntsystem32inetsrvMetaBack目錄中。
恢復備份的方法與此類似,在【備份/還原配置】對話方塊中的【備份】清單中選擇一個備份文件,按一下【還原】。然後再如左圖所示的提示對話框中點選【確定】,一段時間之後,IIS伺服器恢復到進行備份時所處的狀態。
如果伺服器重裝IIS之後需要恢復備份,則在上述恢復操作的基礎上,還應進行額外的操作,步驟如下:
1.在命令提示字元下,鍵入cscript.exe X:InetPubAmdinScriptsAdsutil.vbs enumw3svc,此處"X"是安裝IIS的磁碟機號碼。從列出的設定中,尋找WamUserName和相關的WAMUserPass的值。
2.在控制面板中雙擊【管理工具】,然後雙擊【電腦管理】。
3.選擇【本機使用者管理員】,然後點選【使用者】。雙擊【IWAM_computername】使用者帳號。鍵入從先前步驟找到的WAMUserPass值,並按一下【確定】。
4.在【設定備份名】對話方塊中,選擇已建立的備份文件,然後按一下【還原】。此時組態將會完全還原。
[Cut-Page]
TCP/IP排錯
TCP/IP協定問題往往是導致IIS無法正常運作的原因。當IIS出現錯誤但是可以判斷IIS服務本身沒有問題時,就要考慮是否網路連線出現問題,簡單排除網路硬體損壞所造成的問題之後,我們的注意力就應集中在網路協議,主要是TCP/IP協議上。
Windows 2000提供了一系列TCP/IP排錯工具,這些主要基於命令提示行的工具提供了診斷網路問題的強大手段。
使用ipconfig工具檢查TCP/IP配置
ipconfig是一個查閱和管理客戶端TCP/IP設定狀態的命令提示列工具。在指令提示列中鍵入:ipconfig並回車,得到如右圖所示的電腦基本TCP/IP設定屬性,包括IP位址、子網路遮罩和預設閘道。
在指令提示列中鍵入:ipconfig /all並回車,得到詳細模式的TCP/IP設定狀態,除了基本資訊之外,還包括主機名稱、DNS設定、WINS設定、DHCP設定以及實體位址、節點類型等TCP/IP資訊。
如果電腦啟用DHCP並使用DHCP伺服器取得配置,可以使用ipconfig /renew指令開始刷新租約。也可以使用有/release選項的ipconfig指令立即釋放主機的目前DHCP設定。
對於Windows 95和Windows 98客戶機,應使用winipcfg指令而非ipconfig指令。
使用ping命令測試連接
Ping指令有助於驗證IP級的連通性,發現和解決問題時,可以使用Ping向目標主機名稱或IP位址發送ICMP回應請求。在需要驗證主機能否連接TCP/IP網路和網路資源時使用Ping。
Ping指令實際上是向目標主機發送若干(缺省為4個)資料包,如果本機電腦與目標主機之間能夠連通,目標主機將回覆一則回應訊息,如右上圖所示,回應訊息包含回應時間和TTL值。成功的Ping同一台主機說明IP資料能夠在本機與目標主機之間傳送。
如果收到逾時訊息,如右下圖所示,則說明本地主機與目標主機之間的TCP/IP連線不能建立,可能的原因包括網路故障,協定錯誤以及TCP/IP配置錯誤等在確認網路連通性的時候,應按照以下順序進行Ping測試:
1. Ping本地循環位址127.0.0.1,確定本機TCP/IP配置是否正確。
在命令提示行鍵入Ping 127.0.0.1。
2. Ping本機位址,檢驗本地IP位址設定是否正確。
3. Ping缺省網關位址,檢驗能否與本地子網路以外的主機通訊。
4. Ping遠端子網路上的主機,檢驗能否透過路由器進行遠端通訊。
如果以上Ping指令均能回應,表示TCP/IP配置能夠支援網路通訊。否則,針對對應的網路組件進行設定檢查。
使用netstat工具顯示連線統計
可以使用netstat指令顯示協定統計資訊和目前的TCP/IP連線。
netstat -a指令將顯示所有連接,而netstat -r顯示路由表和活動連接。 netstat -e指令將顯示Ethernet 統計訊息,而netstat -s顯示每個協定的統計資料。
如果使用netstat -n,則不能將位址和連接埠號碼轉換成名稱。
[Cut-Page]
400 無法解析此請求。
401.1 未經授權:存取由於憑證無效而被拒絕。
401.2 未經授權: 存取由於伺服器配置傾向使用替代身份驗證方法而被拒絕。
401.3 未經授權:存取由於ACL 對所請求資源的設定被拒絕。
401.4 未經授權:Web 伺服器上安裝的篩選器授權失敗。
401.5 未經授權:ISAPI/CGI 應用程式授權失敗。
401.7 未經授權:由於Web 伺服器上的URL 授權策略而拒絕存取。
403 禁止訪問:訪問被拒絕。
403.1 禁止訪問:執行訪問被拒絕。
403.2 禁止存取:讀取存取被拒絕。
403.3 禁止存取:寫入存取被拒絕。
403.4 禁止存取:需要使用SSL 查看該資源。
403.5 禁止存取:需要使用SSL 128 查看該資源。
403.6 禁止存取:客戶端的IP 位址被拒絕。
403.7 禁止存取:需要SSL 用戶端憑證。
403.8 禁止存取:客戶端的DNS 名稱被拒絕。
403.9 禁止存取:太多客戶端試圖連接到Web 伺服器。
403.10 禁止存取:Web 伺服器配置為拒絕執行存取。
403.11 禁止存取:密碼已更改。
403.12 禁止存取:伺服器憑證映射器拒絕了客戶端憑證存取。
403.13 禁止存取:客戶端憑證已在Web 伺服器上撤銷。
403.14 禁止存取:在Web 伺服器上已拒絕目錄清單。
403.15 禁止存取:Web 伺服器已超過客戶端存取許可證限制。
403.16 禁止存取:客戶端憑證格式錯誤或未被Web 伺服器信任。
403.17 禁止存取:客戶端憑證已經到期或尚未生效。
403.18 禁止存取:無法在目前應用程式集區中執行請求的URL。
403.19 禁止存取:無法在該應用程式集區中為客戶端執行CGI。
403.20 禁止存取:Passport 登入失敗。
404 找不到檔案或目錄。
404.1 檔案或目錄未找到:網站無法在所要求的連接埠存取。
注意404.1 錯誤只會出現在具有多個IP 位址的電腦上。如果在特定IP 位址/連接埠組合上收到用戶端請求,且沒有將IP 位址配置為在該特定的連接埠上偵聽,則IIS 會傳回404.1 HTTP 錯誤。例如,如果一台電腦有兩個IP 位址,而只將其中一個IP 位址配置為在連接埠80 上偵聽,則另一個IP 位址從連接埠80 收到的任何請求都會導致IIS 傳回404.1 錯誤。只應在此服務等級設定該錯誤,因為只有當伺服器上使用多個IP 位址時才會將它傳回給客戶端。
[Cut-Page]TCP/IP排錯
TCP/IP協定問題往往是導致IIS無法正常運作的原因。當IIS出現錯誤但是可以判斷IIS服務本身沒有問題時,就要考慮是否網路連線出現問題,簡單排除網路硬體損壞所造成的問題之後,我們的注意力就應集中在網路協議,主要是TCP/IP協議上。
Windows 2000提供了一系列TCP/IP排錯工具,這些主要基於命令提示行的工具提供了診斷網路問題的強大手段。
使用ipconfig工具檢查TCP/IP配置
ipconfig是一個查閱和管理客戶端TCP/IP設定狀態的命令提示列工具。在指令提示列中鍵入:ipconfig並回車,得到如右圖所示的電腦基本TCP/IP設定屬性,包括IP位址、子網路遮罩和預設閘道。
在指令提示列中鍵入:ipconfig /all並回車,得到詳細模式的TCP/IP設定狀態,除了基本資訊之外,還包括主機名稱、DNS設定、WINS設定、DHCP設定以及實體位址、節點類型等TCP/IP資訊。
如果電腦啟用DHCP並使用DHCP伺服器取得配置,可以使用ipconfig /renew指令開始刷新租約。也可以使用有/release選項的ipconfig指令立即釋放主機的目前DHCP設定。
對於Windows 95和Windows 98客戶機,應使用winipcfg指令而非ipconfig指令。
使用ping命令測試連接
Ping指令有助於驗證IP級的連通性,發現和解決問題時,可以使用Ping向目標主機名稱或IP位址發送ICMP回應請求。在需要驗證主機能否連接TCP/IP網路和網路資源時使用Ping。
Ping指令實際上是向目標主機發送若干(缺省為4個)資料包,如果本機電腦與目標主機之間能夠連通,目標主機將回覆一則回應訊息,如右上圖所示,回應訊息包含回應時間和TTL值。成功的Ping同一台主機說明IP資料能夠在本機與目標主機之間傳送。
如果收到逾時訊息,如右下圖所示,則說明本地主機與目標主機之間的TCP/IP連線不能建立,可能的原因包括網路故障,協定錯誤以及TCP/IP配置錯誤等在確認網路連通性的時候,應按照以下順序進行Ping測試:
1. Ping本地循環位址127.0.0.1,確定本機TCP/IP配置是否正確。
在命令提示行鍵入Ping 127.0.0.1。
2. Ping本機位址,檢驗本地IP位址設定是否正確。
3. Ping缺省網關位址,檢驗能否與本地子網路以外的主機通訊。
4. Ping遠端子網路上的主機,檢驗能否透過路由器進行遠端通訊。
如果以上Ping指令均能回應,表示TCP/IP配置能夠支援網路通訊。否則,針對對應的網路組件進行設定檢查。
使用netstat工具顯示連線統計
可以使用netstat指令顯示協定統計資訊和目前的TCP/IP連線。
netstat -a指令將顯示所有連接,而netstat -r顯示路由表和活動連接。 netstat -e指令將顯示Ethernet 統計訊息,而netstat -s顯示每個協定的統計資料。
如果使用netstat -n,則不能將位址和連接埠號碼轉換成名稱。