2010-07-12 97 views
2

我将有一个C#应用程序,它将从时钟获取数据并每隔两周向每位员工发送一封电子邮件。c#应用程序作为服务运行有什么优势?

将应用程序自动作为服务运行有什么优势?

+0

而不是作为一个?? – 2010-07-12 20:20:59

+2

@KP:嗯,我还建议(在我的答案中)可能使用任务调度程序并将其作为预定的控制台应用程序运行。这确实有一些优点... – 2010-07-12 20:22:17

回答

12

它不需要用户登录,并且可以配置为在您选择的帐户/权限集下运行。诸如此类(从描述中)应用程序的意图是“永远在线”,它们倾向于作为服务最有意义。

但是,如果您正在做的事情每两周运行一次,您可能还想考虑一个控制台应用程序作为计划任务运行。这具有允许应用根据需要运行的优点,并且不会驻留在内存中。这在系统资源利用率方面更好。它也使得时间表的“重新配置”变得非常容易,因为它不需要改变应用程序本身。

+2

+1作为计划任务,在控制台应用程序上的良好通话 – 2010-07-12 20:25:11

+4

我的老板<3为投票创建服务。相信我,当你有大约10个这样的人时,你正在将故障船直接带到代码管理地狱。 – 2010-07-12 20:35:10

3
  • 运行没有被记录在任何人(例如服务器上)启动后 - 无需启动它,等
  • 您可以轻松地开始,暂停,停止它
  • 可以使其运行在给定的服务帐户下
+0

这些相同的事情可以用作为计划任务运行的程序完成。 – 2010-07-12 20:22:26

+1

@Mthethew Whited:是的,但是有人需要先登录.....如果您的机器启动了,但没有人登录,那么该机器上的计划任务将不会执行,而服务已经运行在有人登录之前 – 2010-07-12 20:23:41

+3

任务计划程序可以在没有登录的情况下安排任务 - 这取决于您如何设置计划任务。调度程序本身作为服务运行,并且计划的任务不一定需要用户登录... – 2010-07-12 20:25:45

1

如果它作为服务运行,没有用户必须登录,它可以自动重新启动并以具有系统权限的SYSTEM运行。

1

我想你回答了你自己的问题。

如果您的应用程序自动作为服务运行,它将在服务器启动时自动启动。然后,它可以定期检查时间,以确定它是否应该执行任何可能的工作。

最主要的好处是它可以自动运行,而无需通过加载程序并在执行时旋转拇指的任务来完成任务Bill(或任何人)。

1
  • 不与桌面
  • 可在低权限的帐户下运行交互,所以如果受到损害,损害可以限制
  • 并不需要用户登录才能运行
相关问题