原文:http://blog.csdn.net/effun/article/details/2638535
从2003到2005,Visual Studio在启动调试的功能上进行了一些改善,不过因为只是简单的一个F5键,很多人可能都不会注意。其实也已经不是很记得清楚在2003启动调试是什么样的问题,因为已经有两年多没用了,只是依稀记得每启动一次就会打开一个新的IE窗口。因为打开IE是需要耗费一点时间的,所以总在寻求一个办法减少这个过程所消耗的时间。
后来2005来了,这个问题被有效地解决了。VS对自己开启的IE进程有一个记录,不会每次启动调试时都打开一个新的窗口,而是要先判断一下之前有没有开启过IE的窗口,如果开启过这个IE窗口是否还存在,如果不满足上述条件了才开启一个新的IE窗口。但前提是必须有一个由VS开启的IE窗口,所以只要在启动调试之前从VS里打开一个IE窗口就可以了,可以按"Ctrl+F5"启动,或者使用"在浏览器中查看"的功能。这样,只要这个IE窗口不关掉,每次按F5启动调试的时候就不会有打开IE窗口的这个动作了,可以节省一点时间。
不过,上面所说的并不是我想阐述的重点。
年初的时候我把系统升级到Vista,并且开始使用VS2008,还安装了IE8 Beta,这个时候问题来了。按上述方法在VS中开启一个新的IE窗口时,IE和VS都会都会停止响应,特别是IE会傻大约半分钟或者更长时间。以后只要不关掉这个IE窗口就没有问题了,但如果要在这个IE窗口里开启一个新的选项卡,也会出现同样的问题。
这个问题让我着实头痛,然后就养成了一个习惯,在VS里打开一个新的工程后就立刻按Ctrl+F5开启一个IE窗口,然后去泡杯茶或上个厕所什么的,哈哈,等重新坐下来才能继续做事,这样非常不方便。后来在网上也搜索了一番,并没有得到什么有价值的解决办法。
后来一次偶尔的误操作让我对这个问题有了解决办法,其实也不是什么新的点子,是以前在2003里一直在用的办法,只不过后来用了2005以后一直没有用就想不起来了。简单分析一下问题的原因,最主要的环节就是VS在打开一个新的IE的时候,那只要绕过这个环节就能将问题解决,并且不会影响调试的功能。
如果要让VS在启动调试时不开启IE窗口呢?办法很简单,就是设置解决方案里网站的启动选项,将启动操作设置为"不打开页。等待来自外部应用程序的请求。",OK,一切搞定。设置之后,按F5启动调试或Ctrl+F5直接启动就不会有IE跳出来,这个时候我们需要自己打开一个IE窗口,然后输入相应的地址就可以了。这里要分为两种情况,一种是使用IIS,另一种是使用VS自带的Web服务器。前者因为地址是固定的,没什么好说,直接往地址栏里输进去就可以了,或者干脆加到收藏夹里去,而自带的Web服务器就有问题了。
第一个问题,自带的Web服务器在VS没有启动或启动调试之前是没有开启的,所以至少先要在VS里启动一次,那个小小的图标才会出现在托盘里。第二个问题,自带的Web服务器每次启动的端口号是不一样的,加到收藏夹里不可靠,只能每次都输入,比较麻烦。不用这么麻烦,鼠标右键点一下托盘里它的那个小图标,然后选择"在Web浏览器中打开"就行了。第三个问题,打开以后还是会出现停顿很长时间的问题。哈哈,我不知道是为什么,但这里有一个小技巧,注意一下就行了。就是用刚才的办法打开浏览器之前先确认至少已经了一个浏览器的窗口,如果没有就自己开一个,然后再按刚才的办法去打开地址就行了。从那个小图标上打开地址会在已有的最后一个开启的IE窗口里开启一个新的选项卡,然后导航到这个网站的根目录,这样就搞定了!
这个小技巧可以解决我的问题,同时也希望可以帮助遇到同样问题的同行们,也希望微软早日有问题的解决办法。