【发布时间】:2012-10-08 19:44:23
【问题描述】:
我正在创建一个窗口服务。我的要求是在特定时间间隔从窗口 NT 服务显示窗口窗体。出于测试目的,我只想在服务启动时显示表单:
protected override void OnStart(string[] args)
{
eventLog1.WriteEntry("In OnStart -before form show");
Messager_Form obj = new Messager_Form();
obj.Show();
// System.Diagnostics.Process.Start("calc.exe");
eventLog1.WriteEntry("In OnStart -after form show");
// timer1.Start();
}
它不工作。既没有显示表单,也没有运行计算过程。我找到了一些链接 showing pop up ,但其中大多数建议使用 WCF。没有wcf就不可能吗?谁能告诉我实现这一目标的方法。
【问题讨论】:
-
您不应该显示来自服务的窗口。服务旨在无需交互即可运行。
-
您应该将您的服务标记为
Interact with desktop -
考虑将消息写入事件日志。使用配置文件启用/禁用记录到事件日志。
-
我不能从服务中运行一个单独的进程吗?
-
打开一个命名管道,让一个客户端(非服务)程序在后台运行并观察管道,就是这样。
标签: c# winforms windows-services