控制台应用程序优于Windows服务的好处

Dea*_*ean 16 .net

我有一个使用预定事件的.Net控制台应用程序将启动,调用mweb服务方法并关闭.每小时/每天运行一次.虽然实现没有"错误",但我想知道将此实现作为Windows服务是否有任何好处.

有没有人对这种情况下的最佳做法有什么看法?

cgr*_*eno 24

我觉得很难调试Windows服务所以我倾向于只在以下情况下使用它们:

(A)我正在做的事情非常复杂或

(B)需要一直运行(例如:监视更改的内容)

我发现大多数事情通常可以通过Console App一些命令行args和Windows Scheduler完成.

  • 您可以使用VS.NET中的Attach To Process选项相当容易地调试Windows服务.安装服务时创建调试版本.然后在它运行时附加到它并设置断点.像黄油一样对我有用. (5认同)

Tre*_*reb 17

服务与应用程序有三种不同:

  1. 它在没有用户登录系统的情况下运行
  2. 它不能有任何用户界面(控制台也是一个用户界面)
  3. 它可以在提升的权限(SYSTEM帐户)下运行,从而执行用户不允许的操作.

这里要问的问题是:您是否需要服务可以提供的不同选项?如果答案为否,则不要使用服务.

我从你的问题推断你需要一个没有任何用户界面的后台应用程序(上面的第2项).您似乎不需要项目1或3.您可以通过不创建一个没有任何窗口(控制台或其他)的纯后台应用程序.只需创建一个简单的Windows应用程序并进

static class Program
{       
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}
Run Code Online (Sandbox Code Playgroud)

static class Program
{       
    [STAThread]
    static void Main()
    {
        // Application.EnableVisualStyles();
        // Application.SetCompatibleTextRenderingDefault(false);
        // Application.Run(new Form1());

        DoWhateverYouWant();
    }
}
Run Code Online (Sandbox Code Playgroud)

哦,是的,克里斯完全正确的调试服务是一个真正的痛苦!