【问题标题】:The applications started by console application fail to display on desktop控制台应用程序启动的应用程序无法在桌面上显示
【发布时间】:2012-08-07 03:34:31
【问题描述】:

我有一个名为 MainService 的 windows 服务,用于监视 SubServices。 SubServices 实际上是一些控制台应用程序,由 MainService 通过 Process.Start() 方法启动。示例代码:

var subServiceProcess = Process.Start(subService.ServicePath);

在其中一个需要像 MainService 一样启动另一个桌面应用程序之前,SubServices 可以正常工作。示例代码:

var desktopApplicationProcess = Process.Start(desktopApplicationPath);

desktopApplicationProcess 已创建,我们可以在任务管理器中看到它。但是,它的 GUI 没有显示。 我试过手动运行子服务,然后桌面正常运行。所以,我猜这是因为子服务是由MainService启动的。

谁能给我一些建议? 非常感谢~

【问题讨论】:

  • 感谢@HansPassant,我现在很确定“会话 0 隔离”会导致我的问题。我会努力解决的。

标签: c# winforms windows-services


【解决方案1】:

您是否允许服务与桌面交互?

【讨论】:

  • 是的,MainService 允许与桌面交互。但是,桌面应用程序并不是由 MainService 直接启动的。所以它不起作用。
  • @allentranks 运行您的子服务的帐户是什么?
  • 谢谢马克,但我不知道如何为子服务设置帐户,因为它实际上是一个控制台应用程序。
  • @allentranks 登录的用户呢?看看这个 MSDN Link Helps 服务应用程序与其他 Visual Studio 应用程序部分
  • 您使用的是什么版本的 Windows?正如 Hans 评论的那样,由于 Session 0 Isolation,该复选框将无法在 Windows Vista 及更高版本上宣传。
猜你喜欢
  • 1970-01-01
  • 2018-11-15
  • 2017-09-10
  • 2017-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-25
相关资源
最近更新 更多