很多朋友在用IIS6架網(wǎng)站的時(shí)候遇到不少問題,而這些問題有些在過去的IIS5里面就遇到過,有些是新出來的,做了很多次試驗(yàn),結(jié)合以前的排錯(cuò)經(jīng)驗(yàn),做出了這個(gè)總結(jié),希望能給大家?guī)蜕厦?
問題1:未啟用父路徑
癥狀舉例:
Server.MapPath() 錯(cuò)誤 \'ASP 0175 : 80004005\'
不允許的 Path 字符
/0709/dqyllhsub/news/OpenDatabase.asp,行 4
在 MapPath 的 Path 參數(shù)中不允許字符 \'..\'。
原因分析:
許多Web頁面里要用到諸如../格式的語句(即回到上一層的頁面,也就是父路徑),而IIS6.0出于安全考慮,這一選項(xiàng)默認(rèn)是關(guān)閉的。
解決方法:
在IIS中屬性->主目錄->配置->選項(xiàng)中。把”啟用父路徑“前面打上勾。確認(rèn)刷新。
問題2:ASP的Web擴(kuò)展配置不當(dāng)(同樣適用于ASP.NET、CGI)
癥狀舉例:
HTTP 錯(cuò)誤 404 - 文件或目錄未找到。
原因分析:
在IIS6.0中新增了web程序擴(kuò)展這一選項(xiàng),你可以在其中對(duì)ASP、ASP.NET、CGI、IDC等程序進(jìn)行允許或禁止,默認(rèn)情況下ASP等程序是禁止的。
解決方法:
在IIS中的Web服務(wù)擴(kuò)展中選中Active Server Pages,點(diǎn)擊“允許”。
問題3:身份認(rèn)證配置不當(dāng)
癥狀舉例:
HTTP 錯(cuò)誤 401.2 - 未經(jīng)授權(quán):訪問由于服務(wù)器配置被拒絕。
原因分析:IIS 支持以下幾種 Web 身份驗(yàn)證方法:
匿名身份驗(yàn)證
IIS 創(chuàng)建 IUSR_計(jì)算機(jī)名稱帳戶(其中計(jì)算機(jī)名稱是正在運(yùn)行 IIS 的服務(wù)器的名稱),用來在匿名用戶請(qǐng)求 Web 內(nèi)容時(shí)對(duì)他們進(jìn)行身份驗(yàn)證。此帳戶授予用戶本地登錄權(quán)限。你可以將匿名用戶訪問重置為使用任何有效的 Windows 帳戶。
基本身份驗(yàn)證
使用基本身份驗(yàn)證可限制對(duì) NTFS 格式 Web 服務(wù)器上的文件的訪問。使用基本身份驗(yàn)證,用戶必須輸入憑據(jù),而且訪問是基于用戶 ID 的。用戶 ID 和密碼都以明文形式在網(wǎng)絡(luò)間進(jìn)行發(fā)送。
Windows 集成身份驗(yàn)證
Windows集成身份驗(yàn)證比基本身份驗(yàn)證安全,而且在用戶具有Windows域帳戶的內(nèi)部網(wǎng)環(huán)境中能很好地發(fā)揮作用。在集成的Windows 身份驗(yàn)證中,瀏覽器嘗試使用當(dāng)前用戶在域登錄過程中使用的憑據(jù),如果嘗試失敗,就會(huì)提示該用戶輸入用戶名和密碼。如果你使用集成的Windows身份驗(yàn)證,則用戶的密碼將不傳送到服務(wù)器。如果該用戶作為域用戶登錄到本地計(jì)算機(jī),則他在訪問此域中的網(wǎng)絡(luò)計(jì)算機(jī)時(shí)不必再次進(jìn)行身份驗(yàn)證。
摘要身份驗(yàn)證
摘要身份驗(yàn)證克服了基本身份驗(yàn)證的許多缺點(diǎn)。在使用摘要身份驗(yàn)證時(shí),密碼不是以明文形式發(fā)送的。另外,你可以通過代理服務(wù)器使用摘要身份驗(yàn)證。摘要身份驗(yàn)證使用一種挑戰(zhàn)/響應(yīng)機(jī)制(集成 Windows 身份驗(yàn)證使用的機(jī)制),其中的密碼是以加密形式發(fā)送的。
.NET Passport 身份驗(yàn)證
Microsoft .NET Passport 是一項(xiàng)用戶身份驗(yàn)證服務(wù),它允許單一簽入安全性,可使用戶在訪問啟用了 .NET Passport 的 Web 站點(diǎn)和服務(wù)時(shí)更加安全。啟用了 .NET Passport 的站點(diǎn)會(huì)依靠 .NET Passport 中央服務(wù)器來對(duì)用戶進(jìn)行身份驗(yàn)證。但是,該中心服務(wù)器不會(huì)授權(quán)或拒絕特定用戶訪問各個(gè)啟用了 .NET Passport 的站點(diǎn)。
解決方法:
根據(jù)需要配置不同的身份認(rèn)證(一般為匿名身份認(rèn)證,這是大多數(shù)站點(diǎn)使用的認(rèn)證方法)。認(rèn)證選項(xiàng)在IIS的屬性->安全性->身份驗(yàn)證和訪問控制下配置。
問題4:IP限制配置不當(dāng)
癥狀舉例:
HTTP 錯(cuò)誤 403.6 - 禁止訪問:客戶端的 IP 地址被拒絕。
原因分析:
IIS提供了IP限制的機(jī)制,你可以通過配置來限制某些IP不能訪問站點(diǎn),或者限制僅僅只有某些IP可以訪問站點(diǎn),而如果客戶端在被你阻止的IP范圍內(nèi),或者不在你允許的范圍內(nèi),則會(huì)出現(xiàn)錯(cuò)誤提示。
解決方法:
進(jìn)入IIS的屬性->安全性->IP地址和域名限制。如果要限制某些IP地址的訪問,需要選擇授權(quán)訪問,點(diǎn)添加選擇不允許的IP地址。反之則可以只允許某些IP地址的訪問。
問題5:IUSR賬號(hào)被禁用
癥狀舉例:
HTTP 錯(cuò)誤 401.1 - 未經(jīng)授權(quán):訪問由于憑據(jù)無效被拒絕。
原因分析:
由于用戶匿名訪問使用的賬號(hào)是IUSR_機(jī)器名,因此如果此賬號(hào)被禁用,將造成用戶無法訪問。
解決辦法:
控制面板->管理工具->計(jì)算機(jī)管理->本地用戶和組,將IUSR_機(jī)器名賬號(hào)啟用。
問題6:NTFS權(quán)限設(shè)置不當(dāng)
癥狀舉例:
HTTP 錯(cuò)誤 401.3 - 未經(jīng)授權(quán):訪問由于 ACL 對(duì)所請(qǐng)求資源的設(shè)置被拒絕。
原因分析:
Web客戶端的用戶隸屬于user組,因此,如果該文件的NTFS權(quán)限不足(例如沒有讀權(quán)限),則會(huì)導(dǎo)致頁面無法訪問。
解決辦法:
進(jìn)入該文件夾的安全選項(xiàng)卡,配置user的權(quán)限,至少要給讀權(quán)限。關(guān)于NTFS權(quán)限設(shè)置這里不再饋述。
問題7:IWAM賬號(hào)不同步
癥狀舉例:
HTTP 500 - 內(nèi)部服務(wù)器錯(cuò)誤
原因分析:
IWAM賬號(hào)是安裝IIS時(shí)系統(tǒng)自動(dòng)建立的一個(gè)內(nèi)置賬號(hào)。IWAM賬號(hào)建立后被Active Directory、IIS metabase數(shù)據(jù)庫和COM+應(yīng)用程序三方共同使用,賬號(hào)密碼被三方分別保存,并由操作系統(tǒng)負(fù)責(zé)這三方保存的IWAM密碼的同步工作。系統(tǒng)對(duì)IWAM賬號(hào)的密碼同步工作有時(shí)會(huì)失效,導(dǎo)致IWAM賬號(hào)所用密碼不統(tǒng)一。
解決辦法:
如果存在AD,選擇開始->程序->管理工具->Active Directory用戶和計(jì)算機(jī)。為IWAM賬號(hào)設(shè)置密碼。運(yùn)行c:\Inetpub\AdminScripts>adsutil SET w3svc/WAMUserPass +密碼同步IIS metabase數(shù)據(jù)庫密碼運(yùn)行cscript c:\inetpub\adminscripts\synciwam.vbs -v 同步IWAM賬號(hào)在COM+應(yīng)用程序中的密碼
問題8:MIME設(shè)置問題導(dǎo)致某些類型文件無法下載(以ISO為例)
癥狀舉例:
HTTP 錯(cuò)誤 404 - 文件或目錄未找到。
原因分析:
IIS6.0取消了對(duì)某些MIME類型的支持,例如ISO,致使客戶端下載出錯(cuò)。
解決方法:
在IIS中屬性->HTTP頭->MIME類型->新建。在隨后的對(duì)話框中,擴(kuò)展名填入.ISO,MIME類型是application。
另外,防火墻阻止,ODBC配置錯(cuò)誤,Web服務(wù)器性能限制,線程限制等因素也是造成IIS服務(wù)器無法訪問的可能原因,這里就不再一一饋述了。