很多朋友在用IIS6架網站的時候遇到不少問題,而這些問題有些在過去的IIS5裡面就遇到過,有些是新出來的,做了很多次試驗,結合以前的排錯經驗,做出了這個總結,希望能給大家幫忙。
問題1:未啟用父路徑
症狀舉例:
Server.MapPath() 錯誤'ASP 0175 : 80004005'
不允許的Path 字元
/0709/dqyllhsub/news/OpenDatabase.asp,行4
在MapPath 的Path 參數中不允許字符'..'。
原因分析:
許多Web頁面裡要用到諸如../格式的語句(即回到上一層的頁面,也就是父路徑),而IIS6.0出於安全考慮,這個選項預設是關閉的。
解決方法:
在IIS中屬性->主目錄->配置->選項中。把」啟用父路徑「前面打上勾。確認刷新。
問題2:ASP的Web擴充配置不當(同樣適用於ASP.NET、CGI)
症狀範例:
HTTP 錯誤404 - 檔案或目錄找不到。
原因分析:
在IIS6.0中新增了web程式擴充這個選項,你可以在其中對ASP、ASP.NET、CGI、IDC 等程式進行允許或禁止,預設情況下ASP等程式是禁止的。
解決方法:
在IIS中的Web服務擴充功能中選取Active Server Pages,點選「允許」。
問題3:身分認證配置不當
症狀範例:
HTTP 錯誤401.2 - 未經授權:存取由於伺服器設定被拒絕。
原因分析:
IIS 支援以下幾種Web 驗證方法:
(1)匿名驗證
IIS 建立IUSR_電腦名稱帳戶(其中電腦名稱是正在執行IIS 的伺服器的名稱),用來在匿名使用者請求Web 內容時對他們進行身份驗證。此帳戶授予使用者本機登入權限。你可以將匿名使用者存取重設為使用任何有效的Windows 帳戶。
(2)基本驗證
使用基本驗證可限制對NTFS 格式Web 伺服器上的檔案的存取。使用基本身份驗證,使用者必須輸入憑證,而且存取是基於使用者ID 的。使用者ID 和密碼都以明文形式在網路間發送。
(3)Windows 整合式身分驗證
Windows整合驗證比基本驗證安全,且在使用者俱備Windows網域帳戶的內部網路環境中能很好地發揮作用。在整合的Windows 驗證中,瀏覽器會嘗試使用目前使用者在網域登入過程中使用的憑證,如果嘗試失敗,就會提示該使用者輸入使用者名稱和密碼。如果你使用整合的Windows身份驗證,使用者的密碼將不會傳送到伺服器。如果該使用者以網域使用者身分登入本機電腦,則他在存取此網域中的網路電腦時不必再次進行驗證。
(4)摘要身份驗證
摘要身份驗證克服了基本身份驗證的許多缺點。在使用摘要身份驗證時,密碼不是以明文形式發送的。另外,你可以透過代理伺服器使用摘要身份驗證。摘要驗證使用一種挑戰/回應機制(整合Windows 驗證所使用的機制),其中的密碼是以加密形式發送的。
.NET Passport 驗證
Microsoft .NET Passport 是一項使用者身分驗證服務,它允許單一簽入安全性,可使用戶在存取啟用了.NET Passport 的Web 網站和服務時更加安全。啟用了.NET Passport 的網站會依靠.NET Passport 中央伺服器來對使用者進行身份驗證。但是,該中心伺服器不會授權或拒絕特定使用者存取各個啟用了.NET Passport 的網站。
解決方法:
根據需要配置不同的身份認證(一般為匿名身份認證,這是大多數網站使用的認證方法)。認證選項在IIS的屬性->安全性->身份驗證和存取控制下配置。
問題4:IP限製配置不當
症狀範例:
HTTP 錯誤403.6 - 禁止存取:客戶端的IP 位址被拒絕。
原因分析:
IIS提供了IP限制的機制,你可以透過設定來限制某些IP不能存取站點,或限制僅僅只有某些IP可以存取站點,而如果客戶端在被你封鎖的IP範圍內,或不在你允許的範圍內,則會出現錯誤提示。
解決方法:
進入IIS的屬性->安全性->IP位址和網域限制。如果要限制某些IP位址的訪問,需要選擇授權訪問,請新增選擇不允許的IP位址。反之則可以只允許某些IP位址的存取。
問題5:IUSR帳號被禁用
症狀舉例:
HTTP 錯誤401.1 - 未經授權:存取由於憑證無效被拒絕。
原因分析:
由於使用者匿名存取使用的帳號是IUSR_機器名,因此如果此帳號已停用,將造成使用者無法存取。
解決方法:
控制台->管理工具->電腦管理->本機使用者和群組,將IUSR_機器名稱帳號啟用。
問題6:NTFS權限設定不當
症狀舉例:
HTTP 錯誤401.3 - 未經授權:存取由於ACL 對所請求資源的設定被拒絕。
原因分析:
Web用戶端的使用者隸屬於user群組,因此,如果該檔案的NTFS權限不足(例如沒有讀取權限),則會導致頁面無法存取。
解決方法:
進入該資料夾的安全性選項卡,配置user的權限,至少要給讀取權限。關於NTFS權限設 置這裡不再饋述。
問題7:IWAM帳號不同步
症狀範例:
HTTP 500 - 內部伺服器錯誤
原因分析:
IWAM帳號是安裝IIS時系統自動建立的一個內建帳號。 IWAM帳號建立後被Active Directory、IIS metabase資料庫和COM+應用程式三方共同使用,帳號密碼被三方分別保存,並由作業系統負責這三方保存的IWAM密碼的同步工作。系統對IWAM帳號的密碼同步工作有時會失效,導致IWAM帳號所用密碼不統一。
解決方法:
如果有AD,請選擇開始->程式->管理工具->Active Directory使用者和電腦。為IWAM帳號設定密碼。執行c:InetpubAdminScripts>adsutil SET w3svc/WAMUserPass +密碼同步IIS metabase資料庫密碼執行cscript c:inetpubadminscriptssynciwam.vbs -v 同步IWAM帳號在COM+應用程式中的密碼
問題8:MIMEwam.vbs -v 同步IWAM帳號在COM+應用程式中的密碼問題導致某些類型檔案無法下載(以ISO為例)
症狀範例:
HTTP 錯誤404 - 檔案或目錄找不到。
原因分析:
IIS6.0取消了對某些MIME類型的支持,例如ISO,致使客戶端下載出錯。
解決方法:
在IIS中屬性->HTTP頭->MIME類型->新建。在隨後的對話方塊中,副檔名填入.ISO,MIME類型是application。
另外,防火牆阻止,ODBC配置錯誤,Web伺服器效能限制,線程限制等因素也是造成IIS伺服器無法存取的可能原因,這裡就不再一一饋述了。