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

标签 windows user-interface firefox windows-services

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

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

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

由于需要打开用户 session 才能运行 pdf 服务器是不切实际的,除了从虚拟机运行整个过程之外,是否有任何解决方法?

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

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

最佳答案

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

如果你尝试这个,不要忘记使用 STAThread 属性。

关于windows - 在 Windows 服务模式下运行 GUI 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2581406/

相关文章:

python - python中关于计算机的信息

c++ - 对于相同的 c++ 源文件,其 gcc 可执行文件在 Windows 中比在 Linux 中大 655 倍。为什么差别这么大?

python - 如何在没有完整路径的情况下通过 CMD 提示符访问 Python?

c# - 尽管主线程正在运行,但 WPF GUI 未更新

javascript - 当浏览器不活动时 jQuery 和 setTimeout 停止工作

c++ - 计划任务通信(使用ITask接口(interface))?

java - 如何调用对 Java GUI 的即时更新? (与 Thread.sleep() 冲突)

java - JavaFX GUI 中的关注点分离

html - 在 FF 7 中查看 FF 3.6 - 可能吗?

css - 当我在 firefox 中打开我的网站时,我的字体不工作