保持C#应用程序运行

保持C#应用程序运行,c#,asp.net,windows-services,filesystemwatcher,C#,Asp.net,Windows Services,Filesystemwatcher,我正在构建一个使用FileSystemWatcher并在后台运行的Windows服务 我不想每次调试时都继续卸载和安装该服务,所以我希望在将其移动到服务之前,在普通程序中完成大部分开发工作。但我对这个很陌生,当我运行它时,它只是穿过街区然后退出 保持程序运行的好方法是什么? while (true) { // Execute your program's functionality here. } 我以前使用过这个工具,根据服务是否在交互式用户环境中运行,将其作为控制台应用程序进行调试 p

我正在构建一个使用FileSystemWatcher并在后台运行的Windows服务

我不想每次调试时都继续卸载和安装该服务,所以我希望在将其移动到服务之前,在普通程序中完成大部分开发工作。但我对这个很陌生,当我运行它时,它只是穿过街区然后退出

保持程序运行的好方法是什么?

while (true)
{
  // Execute your program's functionality here.
}
我以前使用过这个工具,根据服务是否在交互式用户环境中运行,将其作为控制台应用程序进行调试

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);
        }
    }

我以前使用过这个工具,根据服务是否在交互式用户环境中运行,将其作为控制台应用程序进行调试

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);
        }
    }

不久前,我写了一个由7部分组成的系列文章,题目是:。它涵盖了所有复杂的建筑服务,使它们易于调试和自我安装

我正在寻找的基本功能集如下:

  • 构建也可以从控制台使用的服务
  • 正确记录服务启动/关闭和其他活动的事件
  • 通过使用命令行参数允许多个实例
  • 自安装服务和事件日志
  • 正确记录服务异常和错误的事件
  • 控制启动、关闭和重启选项
  • 处理自定义服务命令、电源和会话事件
  • 定制服务安全和访问控制
最终的结果是一个VisualStudio项目模板,它可以在一个步骤中创建一个工作服务,并完成上述所有内容。这对我来说是一个很好的省时方法


有关项目模板和安装说明的链接,请参阅。

我不久前写了一个由7部分组成的系列,标题为:。它涵盖了所有复杂的建筑服务,使它们易于调试和自我安装

我正在寻找的基本功能集如下:

  • 构建也可以从控制台使用的服务
  • 正确记录服务启动/关闭和其他活动的事件
  • 通过使用命令行参数允许多个实例
  • 自安装服务和事件日志
  • 正确记录服务异常和错误的事件
  • 控制启动、关闭和重启选项
  • 处理自定义服务命令、电源和会话事件
  • 定制服务安全和访问控制
最终的结果是一个VisualStudio项目模板,它可以在一个步骤中创建一个工作服务,并完成上述所有内容。这对我来说是一个很好的省时方法


有关项目模板和安装说明的链接,请参阅。

这是来自MSDN@的文档。我以前试过,它在.NETFramework3.x下工作。目前,我找不到我的描述性笔记

使用pragma#If DEBUG进行调试,如控制台输出。另一个是使用调试对象


如果你对此有任何问题,请说出来。我可能可以找到我的笔记或自己制作一个Windows服务应用程序,只是想看看MSDN上的步骤是否仍然有效。

以下是来自MSDN@的文档。我以前试过,它在.NETFramework3.x下工作。目前,我找不到我的描述性笔记

使用pragma#If DEBUG进行调试,如控制台输出。另一个是使用调试对象


如果你对此有任何问题,请说出来。我可能可以找到我的笔记或自己制作一个Windows服务应用程序,只是为了看看MSDN上的步骤是否仍然有效。

要无限期运行,程序通常需要某种循环。
而(true){…}
,也许?看看这个问题:这些步骤对你有用吗?要无限期运行,一个程序通常需要某种类型的循环。
而(true){…}
,也许?看看这个问题:这些对你有用吗?我更喜欢
Console.ReadKey(true)
,以避免键入字符的闪烁。我就是这么做的,但另外,当在控制台中重复日志输出到控制台时,这样更容易查看。我更喜欢
console.ReadKey(true)
以避免键入字符的闪烁。这就是我要做的,但另外,当在控制台中重复日志输出到控制台时,这样更容易查看。