C# 从windows服务打开对话框窗口

C# 从windows服务打开对话框窗口,c#,.net,windows,service,C#,.net,Windows,Service,我用C#创建了一个windows服务应用程序,以在特定的时间间隔弹出一个对话框窗口。在VisualStudio中调试时,它运行良好。然后我创建了一个安装程序。但安装后,服务不会触发弹出对话框窗口。 原因是什么?如何修复?服务在会话0中运行,该会话与交互式桌面隔离。无法从服务显示UI。您需要运行单独的桌面进程来显示UI,然后使用IPC在服务和桌面进程之间进行通信 如果您的对话框足够简单,您可以使用 如果您希望定期运行代码,那么您最好执行计划任务而不是服务。您的服务是如何安装的?您使用的是什么win

我用C#创建了一个windows服务应用程序,以在特定的时间间隔弹出一个对话框窗口。在VisualStudio中调试时,它运行良好。然后我创建了一个安装程序。但安装后,服务不会触发弹出对话框窗口。
原因是什么?如何修复?

服务在会话0中运行,该会话与交互式桌面隔离。无法从服务显示UI。您需要运行单独的桌面进程来显示UI,然后使用IPC在服务和桌面进程之间进行通信

如果您的对话框足够简单,您可以使用


如果您希望定期运行代码,那么您最好执行计划任务而不是服务。

您的服务是如何安装的?您使用的是什么windows版本

如果vista/7显示交互式服务检测

归根结底,windows服务从来都不是为用户交互而设计的

但是有一种方法,但我建议使用不同的方法与用户交互

将windows服务设置为与桌面交互可能会带来安全问题

我发布了这个链接,希望能有所帮助


您不应该这样做,请参见。有关解决方法,请参阅该问题的其他答案。如果我面临此问题,我将这样做。将
Try-Catch
log
异常放入文件。请参阅.,:)@RJK记录的异常不会讨论会话0隔离和该会话的非交互性质