我有一个数据加载应用程序,必须每天不定期地执行多次。我打算编写一个服务来启动下载并将数据导入数据库服务器。在Web服务上使用标准服务有什么优势,反之亦然?
答案 0 :(得分:7)
我认为你错过了这一点。
Web 服务通常用于通信或远程执行。您可以在Web服务上调用远程函数来调整正在运行的计算机的行为或从中检索数据。
Windows 服务是在计算机上运行的后台进程,不需要任何“登录用户”。他们可以在用户登录屏幕时执行任务和执行操作,或执行提升的操作。您可以与服务进行通信以调整其行为或检索信息,但它的一般用途与Web服务不同。
这里最显着的区别是必须调用Web服务,它们不能独立运行。
对于您的应用程序,我建议您使用 Windows (标准)服务,因为您可以每天执行一次代码。我只会使用Web服务,如果你还有其他东西来自动调用web服务,你需要服务器的响应详细说明它的执行结果(成功/失败/警告等等)
答案 1 :(得分:1)
如果“不规则间隔”的意思是,应用程序由另一个应用程序调用,我会使用Web服务。
如果安排了行动,我会使用Windows服务。
如果您正在使用SQL Server(已安排或未安排),我还会考虑使用SQL Server Integration Services。
答案 2 :(得分:1)
您还可以考虑编写由Windows计划任务触发的普通(Windows或控制台)应用程序。你所描述的并不一定听起来像是需要服务的东西。
答案 3 :(得分:1)
对我来说,好好利用Windows服务。在我的头顶,如果出现以下情况,我会使用Windows服务: 1.工作在后台定期(定期或不定期)进行; 2.不需要交互 - 工作只是在后台完成,并根据轮询或其他类型的触发器(队列中丢弃的消息,数据库值触发器,预定的时间跨度等)开始工作; 3.需要监控(与日志记录一起启动/停止),您可以轻松利用WMI,perfmon和事件日志。
Web服务更适合交互式任务(例如,如果您希望根据收到的请求启动下载)。
听起来像Windows服务是你应该采取的方法。
希望这会有所帮助。祝你好运!