Internet Explorer 11需要过长的时间才能关闭

时间:2016-01-19 04:49:39

标签: javascript mfc internet-explorer-11 citrix xenapp

我的Windows MFC应用程序具有托管Web应用程序的嵌入式WebBrowser控件,当用户单击通过javascript window.open()调用显示弹出窗口的链接时,会导致iexplorer.exe启动以显示弹出窗口。

当关闭此弹出窗口iexplore.exe关闭时,如果用户单击该链接再次启动弹出窗口,则关闭需要很长时间,会显示一个javascript错误:

“已经安排了系统关闭”, - 我认为这是与关闭相关的通用COM错误消息。

在我的测试中,我观察到Internet Explorer 11进程iexplore.exe最多需要15秒才能退出。相比之下,Internet Explorer 8几乎立即退出。

通过启动Internet Explorer 11并打开taskmgr.exe以查看启动的两个iexplore.exe进程,可以轻松验证这一点。一个是64位主机进程,另一个是托管选项卡内容的32位进程。当Internet Explorer窗口关闭时,32位进程立即退出,但64位主机进程会持续几秒钟。

如果iexplore.exe正在关闭,则只会出现此错误。如果出现以下情况,则不会发生:

  • 用户等待iexplore.exe终止
  • 使用任务管理器杀死iexplorer.exe
  • 或确保已经打开了一个Internet Explorer窗口,这样如果弹出窗口关闭iexplore.exe没有终止,因为它仍然显示一个窗口。

有没有人有任何想法?

1 个答案:

答案 0 :(得分:1)

这两个注册表项:

[HKLM\Software\Microsoft\Internet Explorer\Main\FrameShutdownDelay]
[HKLM\Software\Policies\Microsoft\Internet Explorer\Main\FrameShutdownDelay]
值为DWORD 1的

似乎阻止32位制表符进程退出1分钟,此时64位帧主机进程也退出 - 这解决了我们的问题。

但是,这个密钥没有记录,我只是通过在iexplore.exe进程上运行procmon.exe来发现它。

我很感激对此密钥的目的和用途的任何解释。