.net Windows服务应用程序是正确的方法吗

.net Windows服务应用程序是正确的方法吗,.net,sql,web-services,automation,.net,Sql,Web Services,Automation,我目前有一个windows应用程序,它是自动化的,每天运行。 其目的是访问Web服务以下载数据集,并插入到sql 2005数据库中 windows服务应用程序是否适合这种情况,它是否更灵活,性能是否更好 即使没有用户主动登录,Windows服务也允许您运行任务。我想说,对于这样的任务,Windows服务更合适。但是,我怀疑是否会有任何性能改进。您肯定可以将其作为一项服务使用,但我认为您不会从中获得任何好处。由于服务始终在运行,它们通常用于必须运行的应用程序,因为它们不断地检查条件(等待远程处理、

我目前有一个windows应用程序,它是自动化的,每天运行。 其目的是访问Web服务以下载数据集,并插入到sql 2005数据库中


windows服务应用程序是否适合这种情况,它是否更灵活,性能是否更好

即使没有用户主动登录,Windows服务也允许您运行任务。我想说,对于这样的任务,Windows服务更合适。但是,我怀疑是否会有任何性能改进。

您肯定可以将其作为一项服务使用,但我认为您不会从中获得任何好处。由于服务始终在运行,它们通常用于必须运行的应用程序,因为它们不断地检查条件(等待远程处理、每n分钟检查一次数据库中的信息等)


因为你的跑步一天一次,如果你改变它,你不会有任何优势。如果您的自动任务设置正确,它应该在机器打开时运行,就像服务一样。将windows应用程序(特别是控制台)置于服务之上的好处是,如果出现故障,您可以重新启动应用程序并运行它。这对于服务来说并不容易,因为程序中必须有额外的代码,以确保它一天只运行这么多次(在您的情况下是一次)。您可能无法让它在启动时执行您的流程,因为您必须考虑正在重新启动的服务器。这意味着,如果您的服务器在进程应该运行时停机,您将必须知道如何“欺骗”程序,使其认为它应该只在该时间运行该进程。Window的应用程序不会受到这种影响,因为它们在进程完成后终止,因此可能没有额外的代码来阻止它再次运行进程。

如果它只需要每天运行一次(或只是定期运行),那么在我看来,将其作为服务是一种浪费。大多数时候,它只是什么也不做


没有什么特别的服务可以提高性能,因此我建议将其作为一个普通的旧应用程序,并使用scheduler每天运行一次。

如果要将数据插入SQL Server,那么显然您对它有依赖性。我将研究使用SQL代理进行调度

根据您的处理要求,您可能会发现,您可以使用SQL Server集成服务(SSIS)完成全部工作,该服务已详细记录了如何使用SQL Server进行计划


我知道你提到你已经写了这个。但是,使用SSIS/SQL代理,您可以“免费”获得一定级别的监控,并且您可能会发现复制当前代码几乎不费吹灰之力。此外,DBA可以非常轻松地维护您的代码,而无需访问源代码等。

FYI-如果没有用户登录,常规计划任务也可以正常运行。@Thorsten&Eric-没错,当前运行的windows应用程序是autonomous@Thorsten-是的,根本没有用户界面。和我想的差不多,所以答案可能是,如果我希望更新是频繁的,定期的,是的,一天几次坚持使用windows应用我使用windows服务的一般经验法则是,如果我必须做一些事情,或者需要它每分钟运行一次,程序必须不断运行以检查条件,我就创建一个服务。如果不是,我试着把它作为一个普通的应用程序。