Internet Explorer 11 关闭时间过长
Internet explorer 11 takes excessively long to shutdown
我的 windows MFC 应用程序有一个嵌入的 WebBrowser 控件,它托管一个 Web 应用程序,当用户单击 link 时,它会通过 javascript window.open() 调用,它会导致启动 iexplorer.exe 以显示弹出窗口 window。
当此弹出窗口 window 关闭时 iexplore.exe 关闭,但是关闭需要很长时间,以至于如果用户单击 link 再次启动弹出窗口,javascript 显示错误:
“已经安排了系统关闭”,- 我认为这是与 ie 关闭有关的一般 COM 错误消息。
在我的测试中,我观察到 Internet Explorer 11 进程 iexplore.exe 最多需要 15 秒才能退出。相比之下,Internet Explorer 8 几乎立即退出。
这可以通过启动 Internet Explorer 11 并打开 taskmgr.exe 查看启动的两个 iexplore.exe 进程来轻松验证。一个是 64 位主机进程,另一个是托管选项卡内容的 32 位进程。当 Internet Explorer window 关闭时,32 位进程会立即退出,但 64 位主机进程会滞留数秒。
仅当 iexplore.exe 正在关闭时才会出现此错误。在以下情况下不会发生:
- 用户等待iexplore.exe终止
- 使用任务管理器
杀死iexplorer.exe
- 或确保已经有一个 Internet Explorer window 打开,这样如果弹出窗口关闭 iexplore.exe 不会终止,因为它仍在显示 window.
有没有人有什么想法?
这两个注册表项:
[HKLM\Software\Microsoft\Internet Explorer\Main\FrameShutdownDelay]
[HKLM\Software\Policies\Microsoft\Internet Explorer\Main\FrameShutdownDelay]
DWORD 1 的值似乎可以阻止 32 位选项卡进程退出 1 分钟,此时 64 位 Frame 主机进程也会退出 - 这解决了我们的问题。
但是,这个密钥没有记录,我只是在 iexplore.exe 过程中由 运行 procmon.exe 发现的。
如能解释此密钥的用途和预期用途,我将不胜感激。
我的 windows MFC 应用程序有一个嵌入的 WebBrowser 控件,它托管一个 Web 应用程序,当用户单击 link 时,它会通过 javascript window.open() 调用,它会导致启动 iexplorer.exe 以显示弹出窗口 window。
当此弹出窗口 window 关闭时 iexplore.exe 关闭,但是关闭需要很长时间,以至于如果用户单击 link 再次启动弹出窗口,javascript 显示错误:
“已经安排了系统关闭”,- 我认为这是与 ie 关闭有关的一般 COM 错误消息。
在我的测试中,我观察到 Internet Explorer 11 进程 iexplore.exe 最多需要 15 秒才能退出。相比之下,Internet Explorer 8 几乎立即退出。
这可以通过启动 Internet Explorer 11 并打开 taskmgr.exe 查看启动的两个 iexplore.exe 进程来轻松验证。一个是 64 位主机进程,另一个是托管选项卡内容的 32 位进程。当 Internet Explorer window 关闭时,32 位进程会立即退出,但 64 位主机进程会滞留数秒。
仅当 iexplore.exe 正在关闭时才会出现此错误。在以下情况下不会发生:
- 用户等待iexplore.exe终止
- 使用任务管理器 杀死iexplorer.exe
- 或确保已经有一个 Internet Explorer window 打开,这样如果弹出窗口关闭 iexplore.exe 不会终止,因为它仍在显示 window.
有没有人有什么想法?
这两个注册表项:
[HKLM\Software\Microsoft\Internet Explorer\Main\FrameShutdownDelay]
[HKLM\Software\Policies\Microsoft\Internet Explorer\Main\FrameShutdownDelay]
DWORD 1 的值似乎可以阻止 32 位选项卡进程退出 1 分钟,此时 64 位 Frame 主机进程也会退出 - 这解决了我们的问题。
但是,这个密钥没有记录,我只是在 iexplore.exe 过程中由 运行 procmon.exe 发现的。
如能解释此密钥的用途和预期用途,我将不胜感激。