很多朋友在用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 身份驗證方法:
匿名身份驗證
IIS 創建 IUSR_計算機名稱 帳戶(其中 計算機名稱 是正在運行 IIS 的服務器的名稱),用來在匿名用戶請求 Web 內容時對他們進行身份驗證。此帳戶授予用戶本地登錄權限。你可以將匿名用戶訪問重置為使用任何有效的 Windows 帳戶。
基本身份驗證
使用基本身份驗證可限制對 NTFS 格式 Web 服務器上的文件的訪問。使用基本身份驗證,用戶必須輸入憑據,而且訪問是基於用戶 ID 的。用戶 ID 和密碼都以明文形式在網絡間進行發送。
Windows 集成身份驗證
Windows 集成身份驗證比基本身份驗證安全,而且在用戶具有 Windows 域帳戶的內部網環境中能很好地發揮作用。在集成的 Windows 身份驗證中,浏覽器嘗試使用當前用戶在域登錄過程中使用的憑據,如果嘗試失敗,就會提示該用戶輸入用戶名和密碼。如果你使用集成的 Windows 身份驗證,則用戶的密碼將不傳送到服務器。如果該用戶作為域用戶登錄到本地計算機,則他在訪問此域中的網絡計算機時不必再次進行身份驗證。
摘要身份驗證
摘要身份驗證克服了基本身份驗證的許多缺點。在使用摘要身份驗證時,密碼不是以明文形式發送的。另外,你可以通過代理服務器使用摘要身份驗證。摘要身份驗證使用一種挑戰/響應機制(集成 Windows 身份驗證使用的機制),其中的密碼是以加密形式發送的。
.NET Passport 身份驗證
Microsoft .NET Passport 是一項用戶身份驗證服務,它允許單一簽入安全性,可使用戶在訪問啟用了 .NET Passport 的 Web 站點和服務時更加安全。啟用了 .NET Passport 的站點會依靠 .NET Passport 中央服務器來對用戶進行身份驗證。但是,該中心服務器不會授權或拒絕特定用戶訪問各個啟用了 .NET Passport 的站點。
解決方法:
根據需要配置不同的身份認證(一般為匿名身份認證,這是大多數站點使用的認證方法)。認證選項在IIS的屬性->安全性->身份驗證和訪問控制下配置