设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 服务器 > 系统 > 正文

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

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

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

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

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

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

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

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

解决方法

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

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

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读