C# 在前台运行Windows服务

C# 在前台运行Windows服务,c#,.net,windows-services,windows-xp,C#,.net,Windows Services,Windows Xp,我有一个作为服务安装的bat文件。我可以在远程设备上运行服务。此服务需要启动另一个应用程序。启动的应用程序需要可见(在前台运行)。当前启动的应用程序正在后台运行,因为windows服务正在后台运行。如何使windows服务或windows服务及其启动的应用程序在前台运行?我打算使用C#中的ServiceController类来管理服务。我想您可能应该阅读 让一个服务只启动另一个应用程序是一个真正的安全问题,如果你的另一个应用程序被其他应用程序替换,你是否在服务中进行了所有检查,以确保你的应用程

我有一个作为服务安装的bat文件。我可以在远程设备上运行服务。此服务需要启动另一个应用程序。启动的应用程序需要可见(在前台运行)。当前启动的应用程序正在后台运行,因为windows服务正在后台运行。如何使windows服务或windows服务及其启动的应用程序在前台运行?我打算使用C#中的ServiceController类来管理服务。

我想您可能应该阅读


让一个服务只启动另一个应用程序是一个真正的安全问题,如果你的另一个应用程序被其他应用程序替换,你是否在服务中进行了所有检查,以确保你的应用程序是你认为的应用程序。

正确的方法是在用户会话中启动第二个应用程序,而您的Windows服务应用程序始终在会话0中运行

该方法是我与@RaheelKhan在此主题下讨论的一部分


它需要正确理解Windows会话、会话隔离和平台调用。

在我的案例中,安全性不是主要问题。它是一个内部服务器。我没有选中“允许服务与桌面交互”选项。我用模拟来代替。我知道也存在与模拟相关的安全问题,但这不是生产代码。回到原来的问题。如何在前台运行windows服务?这可能吗?在引用的文章中,有关于如何做到这一点的信息。将源代码包含到显示技术的项目中。它不仅仅在后台运行一点点,它在一个完全不同的会话中运行,有自己的桌面。一个你在Vista和更高版本中无法访问的。谷歌“会话0隔离”。会话0隔离适用于vista和更高版本,对吗?我是XP的。在XP中可能吗?你找到解决方案了吗?