当我点击"Start Without Debugging"(Ctrl-F5)时,如何阻止我的Visual Studio启动IE8 TWICE?

Chr*_*Rea 6 visual-studio-2008 internet-explorer-8

我主要使用Visual Studio 2008进行Web开发,自从我在工作PC上升级到IE8后,似乎就出现了一种恼人的行为:

当我为网站或Web应用程序项目设置启动页面,然后单击工具栏中的"启动而不调试"图标或使用键盘快捷键CTRL-F5时,Visual Studio继续启动IE8(我的默认Web浏览器) ,但两次这样做:

IE8打开的第一个新窗口有一个标签"Connecting ...",它会加载about:空白页面.然后,另一个新的IE8窗口打开,同时显示"正在连接..."选项卡,并加载我在项目中设置的起始页面.

非常烦人.有没有人有任何想法可能导致这个以及如何解决它?

在有人建议之前,我已经通过将Firefox作为我的默认浏览器来解决这个问题了一段时间;-)但是,我想在IE8中使用Visual Studio的javascript调试功能,所以再次想要IE8作为我的默认值,现在.


附加信息:

使用Process Explorer,我可以看到两个iexplore.exe进程都是由同一个父进程Visual Studio 2008的devenv.exe启动的.

第一个iexplore.exe进程具有以下命令行:

"C:\Program Files\Internet Explorer\IEXPLORE.EXE" -noframemerging -debug about:blank

几秒钟后启动的第二个iexplore.exe进程具有以下命令行:

"C:\Program Files\Internet Explorer\IEXPLORE.EXE" -noframemerging -suspended -debug http://localhost/test/index.html

然后,我也尝试了Process Monitor.在日志中,我可以在"C:\ Program Files\Internet Explorer\IEXPLORE.EXE"上看到来自devenv.exe的两个不同的"Process Create"事件......相隔几秒钟.

有趣的是,如果我使用Visual Studio 2005(而不是2008)尝试完全相同的事情(无需调试启动),我只会看到使用命令行创建的单个进程:

"C:\Program Files\Internet Explorer\IEXPLORE.EXE" about:blank

在2005年,在视觉上看起来好像是:空白首先被加载,然后URL被相同的选项卡中的相同浏览器进程加载:空白,覆盖它.

另外一件事我注意到不同:在VS2005 Process Monitor日志中,它显示了很多文件"C:\ WINDOWS\system32\ieframe.dll"的读取,但VS2008 Process Monitor日志中没有显示相同的内容.(ieframe.dll包含与Internet Explorer相关的某些COM对象的类型库.)因此,VS2005启动和控制IE的方式可能与VS2008不同.

最后,这很奇怪:在VS2008中,如果我单击"Start Without Debugging",我会得到两个窗口.但是,如果在解决方案资源管理器中我右键单击我的网站项目或其中的任何HTML文件并选择"在浏览器中查看",我只得到单个窗口.为什么"开始不调试"和"在浏览器中查看"之间存在差异?

Eri*_*Law 2

嗯……很奇怪。如果您使用 SysInternal 的进程监视器,您能否看到第二个 IE 窗口是否由第一个 IE 窗口启动,或者 Visual Studio 是否拥有这两个窗口?这可能有助于查明问题所在。

除此之外,接下来要尝试的是禁用大多数浏览器插件,看看这是否会产生影响。最后,尝试使用“工具”/“Internet 选项”/“安全”为 Intranet 和受信任站点区域启用保护模式。