保持 C# 应用程序运行
本文关键字:运行 应用程序 保持 | 更新日期: 2023-09-27 18:34:45
我正在构建一个使用FileSystemWatcher并在后台运行的Windows服务。
我不想每次想要调试时都继续卸载和安装服务,因此希望在将其移动到服务之前在普通程序中完成大部分开发。但我对此很陌生,当我运行它时,它只是穿过街区并退出。
保持程序运行的好方法是什么?
> http://einaregilsson.com/run-windows-service-as-a-console-program/
我以前使用过它来调试我的服务作为控制台应用程序,具体取决于它是否在交互式用户环境中运行。
public partial class DemoService : ServiceBase
{
static void Main(string[] args)
{
DemoService service = new DemoService();
if (Environment.UserInteractive)
{
service.OnStart(args);
Console.WriteLine("Press any key to stop program");
Console.Read();
service.OnStop();
}
else
{
ServiceBase.Run(service);
}
}
while (true)
{
// Execute your program's functionality here.
}
不久前我写了一个由7部分组成的系列,标题为:构建Windows服务。 它涵盖了建筑服务的所有复杂性,使它们易于调试和自行安装。
我正在寻找的基本功能集如下:
- 构建也可从控制台使用的服务
- 服务启动/关闭和其他活动的正确事件日志记录
- 使用命令行参数允许多个实例
- 自行安装服务和事件日志
- 服务异常和错误的正确事件日志记录
- 控制启动、关机和重启选项
- 处理自定义服务命令、电源和会话事件
- 自定义服务安全性和访问控制
最终结果是一个Visual Studio项目模板,该模板在一个步骤中创建了一个工作服务,并完成了上述所有内容。 这对我来说是一个很好的节省时间。
请参阅生成 Windows 服务 – 第 7 部分:项目模板链接的整理工作和安装说明。
这是来自 MSDN @ http://msdn.microsoft.com/en-us/library/7a50syb3(v=vs.80(.aspx?ppud=4 的文档。我以前试过它,它可以在.NET Framework 3.x下工作。目前,我找不到我的描述性注释。
使用编译指示 #If DEBUG 进行调试,例如控制台输出。另一个是使用 Debug 对象。
如果您对此有任何疑问,请说出来。我也许能够找到我的笔记或自己制作一个Windows服务应用程序,只是为了看看MSDN上的步骤是否仍然有效。