在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
http://blog.joycode.com/scottgu/archive/2006/09/20/83906.aspx
Running Web Applications on Windows Vista with Visual Studio 2005
http://msdn2.microsoft.com/en-US/library/aa964620(vs.80).aspx