在Vista IIS 7 中用 vs2005 調試 Web 項目核心是要解決以下幾個問題:
1、Vista 自身在安全性方面的User Account Control (UAC)
2、安裝必須的IIS7 組件。
3、Vista 自帶的IIS7 跟 IIS 6 在底層都發生了變化,我們如何讓IIS7以兼容IIS6 的方式運行。因為VS2005並不支持IIS7。
下面通過截圖方式來說明如何配置上述幾點,以保證VS2005可以調試 Vista 操作系統中基於IIS的Web 項目。
一、安裝必須的IIS7 組件
IIS7 被分成了很多個組件,默認是不安裝的,你需要安裝這些組件。
下圖對應的功能,可以通過以下步驟打開:
開始 --> 控制面板 --> 程序 --> 打開或關閉 Windows 功能
1、VS2005 並不能識別 IIS7 ,要讓它識別IIS7, 就需要安裝IIS7 的一個插件:IIS6 管理兼容性;
2、IIS 默認安全性:VS2005 中,如果要調試站點的話,必須有“集成 Windows 身份驗證”
其他兩個,在一些情況下也能會用到:
摘要式身份驗證 是使用 Windows 域控制器對請求訪問 Web 服務器上內容的用戶進行身份驗證。
基本身份驗證 是要求用戶提供有效的用戶名和密碼才能訪問內容。
3、要調試 ASP.net 當然要安裝IIS支持 ASP.net 的組件了。
二、配置IIS7
1、IIS7 在安裝了上述組件後,一些功能並沒有啟用,你需要把它啟用起來:
下述配置功能你可以在
控制面板 --> 管理工具 -->Internet 信息服務(IIS)管理器 程序中找到
打開 Internet 信息服務(IIS)管理器 後,在中間部分的下部,可以看到 身份驗證 配置項,雙擊就是如下界面:
剛才我們增加的幾個身份驗證,需要在你要調試的站點上啟用。
注意:是你要調試的站點,而不是你要調試的應用程序目錄!
2、IIS7 應用程序池的設置
IIS 的應用程序池根據托管管道模式分了兩種類型:集成和經典
集成 .NET 模式下,應用程序不應在 <system.web>/<httpModules> 配置節中指定 ASP.NET 模塊組件,而應使用 <system.webServer>/<modules> 配置節來加載 ASP.NET 模塊組件。
經典 .NET 模式 則是我們以前習慣的IIS 6 的方式,沒有上述限制。
畢竟現在 Longhorn Server 離我們還遠,我們當然要兼容Window 2003 的IIS6 的模式,所以我們需要修改站點的應用程序池設置,如下圖:
我上面的截圖是使用了現有的經典模式的應用程序池,你也可以自己先建立一個經典模式的應用程序池,然後再用上圖方式配置對應站點使用的這個經典模式的應用程序池。
三、 VS2005 的啟動。
由於 Vista 的 User Account Control (UAC) ,要避免調試中出現沒有權限問題,我們應該以管理員身份來運行 Vista.如下圖:
參考資料:
Enabling ASP.NET 2.0 Debugging on Visual Studio 2005, IIS 7.0 and Vista
http://www.thousandtyone.com/blog/EnablingASPNET20DebuggingOnVisualStudio2005IIS70AndVista.aspx
技巧和訣竅:在VS 2005裡使用Vista的IIS7
http://weblogs.asp.net/scottgu/archive/2006/09/19/Tip_2F00_Trick_3A00_-Using-IIS7-on-Vista-with-VS-2005.aspx
Running Web Applications on Windows Vista with Visual Studio 2005
http://msdn2.microsoft.com/en-US/library/aa964620(vs.80).aspx