加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门站长网 (https://www.0592zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

在Windows服务模式下运行GUI应用程序

发布时间:2021-02-21 18:50:32 所属栏目:系统 来源:网络整理
导读:我正在编写一个作为 Windows服务运行的服务器,通过请求调用Firefox来生成网页的pdf快照. 我知道在服务模式下运行GUI程序是个坏主意,但我的程序的服务器性质限制了在用户模式下运行它.运行用户级“代理”也不是一种选择,因为在服务器运行的计算机上可能没有

我正在编写一个作为 Windows服务运行的服务器,通过请求调用Firefox来生成网页的pdf快照.

我知道在服务模式下运行GUI程序是个坏主意,但我的程序的服务器性质限制了在用户模式下运行它.运行用户级“代理”也不是一种选择,因为在服务器运行的计算机上可能没有交互式用户登录.

在我的实验中,当服务在已登录的用户帐户下运行时,Firefox成功生成了pdf.显然它在其他情况下不起作用:对于未登录的本地系统和用户帐户.在LocalSystem下启用了“允许服务与桌面交互”选项,我可以看到Firefox启动时报告它无法找到打印机.

由于要求pdf服务器的打开用户会话运行是不切实际的,除了从虚拟机运行整个事件之外,还有其他解决方法吗?

更新:我认为问题不在于帐户权限,而是在服务模式下运行时FF正在等待的隐形模式对话框.

但是,当FF在LocalSystem帐户下运行时,它仍然无法创建pdf. FF说它找不到打印机,我想知道这是否是可以某种方式启用的权限?

解决方法

您可能想要尝试一种不同的方法,在项目中包含一些.NET PDF库( PDFsharp是一个很好的,开源的,选择),而不是将其与WebBrowser控件结合使用,您还需要在项目中包含它渲染PDF.

如果您尝试这样做,请不要忘记使用STAThread属性.

(编辑:厦门站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读