我有一个使用预定事件的.Net控制台应用程序将启动,调用mweb服务方法并关闭.每小时/每天运行一次.虽然实现没有"错误",但我想知道将此实现作为Windows服务是否有任何好处.
有没有人对这种情况下的最佳做法有什么看法?
我觉得很难调试Windows服务所以我倾向于只在以下情况下使用它们:
(A)我正在做的事情非常复杂或
(B)需要一直运行(例如:监视更改的内容)
我发现大多数事情通常可以通过Console App一些命令行args和Windows Scheduler完成.
服务与应用程序有三种不同:
它在没有用户登录系统的情况下运行
它不能有任何用户界面(控制台也是一个用户界面)
它可以在提升的权限(SYSTEM帐户)下运行,从而执行用户不允许的操作.
这里要问的问题是:您是否需要服务可以提供的不同选项?如果答案为否,则不要使用服务.
我从你的问题推断你需要一个没有任何用户界面的后台应用程序(上面的第2项).您似乎不需要项目1或3.您可以通过不创建一个没有任何窗口(控制台或其他)的纯后台应用程序.只需创建一个简单的Windows应用程序并进
static class Program { [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } }
至
static class Program { [STAThread] static void Main() { // Application.EnableVisualStyles(); // Application.SetCompatibleTextRenderingDefault(false); // Application.Run(new Form1()); DoWhateverYouWant(); } }
哦,是的,克里斯完全正确的调试服务是一个真正的痛苦!