具有webBrowser控件的C#控制台应用程序失败并显示错误模块名称:MSHTML.dll

时间:2017-09-27 23:11:06

标签: c# .net scheduled-tasks webbrowser-control

我有一个c#控制台应用程序,它使用WebBrowser控件并将文档打印到打印机。我已安排使用任务计划程序每天运行该作业。

当我使用选项“仅在用户登录时运行”运行控制台应用程序exe时,一切正常。但是,当我将其更改为“运行用户是否登录”时,我的进程失败,我在事件查看器中看到了以下内容。

enter image description here

Faulting module name: MSHTML.dll, version: 11.0.9600.18792, time stamp: 0x59908408
Exception code: 0xc0000005
Fault offset: 0x00bd397f
Faulting process id: 0x2768

为什么webBrowser无法使用“运行用户是否登录” 有任何想法吗 ? 谢谢大家。

参考:Print WebBrowser without previewing i.e. single click print

1 个答案:

答案 0 :(得分:1)

Web浏览器控件IEFrame.dll就像一个IE版本,运行框架进程和制表符进程组合成线程加载到应用程序的内存空间。

因此,他们遇到与IE相同的问题。由于IE构建在WinInet之上,并且不支持在会话0中运行WinInet(即用户未登录时),因此可能会失败。原因是来自HKEY_CURRENT_USER注册表配置单元的IE和WinInet加载设置,如果您未登录则该设置不可用。

听起来你只需要一个HTML渲染引擎来打印文档。

我过去曾在IE开发的Microsoft Premier支持团队工作。