Web服务和Windows服务有什么区别?

19

Web服务和Windows服务有什么区别?

我的经验主要是关于Windows服务,我从未创建过Web服务。

Web服务与Windows服务类似吗?
它们可否进行计划安排,在特定时间运行等?
在什么情况下应该使用Web服务代替Windows服务,反之亦然?

8个回答

44

它们之间的区别如此之大。

Windows服务是一种应用程序,可以在用户未登录系统的情况下运行,通常用于处理机器上不需要用户干预就能处理的数据。

Web服务是一个网站,当被联系时会返回XML(通常)以服务消费者可处理的几种标准格式之一。

它们不能相互替换。它们在本质上是不同的。


10
+1,JSON 是一种流行的响应格式备选方案。 - cgp
它们真的有那么不同吗?如果你有一个按需处理来自MSMQ的消息的Windows服务,这与按需处理HTTP请求的Web服务有很大不同吗? - Steven T. Cramer
@Welbog 在我们这个日历年初的时候我参加了一次面试,说实话,通过我接触过的人来看,我是一个优秀的程序员,但我从来没有在基于Web的应用程序上工作过(只是在2005年左右做过一点Web表单和一些MVC hello world)......因此根据我的“简历”,公司打来了电话,然后我去参加了面试,面试效果还不错,尽管我不是Web用户。直到他们问到Web服务和Windows服务的区别及难点... Web服务能用来发送公司内部的关键数据吗...那么,你可以详细介绍它们的使用方法和偏好吗? - Hassan Faghihi

12
你要求我们比较苹果和橙子。我会为您发布定义以及进一步阅读的链接,以便您了解为什么这两个东西是互斥的,不能像您尝试做的那样进行比较。 Web服务
Web服务通常只是可以通过网络(如Internet)访问并在请求服务的远程系统上执行的Internet应用程序编程接口(API)。 Windows服务
Windows服务是长时间运行的可执行文件,执行特定功能,并且设计为不需要用户干预。

当我们创建WCF合同并将其托管在Windows服务上时,我们是API的提供者,那么它是什么?是Windows服务...还是Web服务(例如实现和运行一些后台Web托管服务,而我们不知道)? - Hassan Faghihi

3

Web服务是系统的HTTP接口。例如:Twitter API或Google Maps API都是REST Web服务。

Windows服务是在没有用户交互的情况下运行的后台进程。

这两者没有关联。


2

Web服务只是一种暴露服务以供使用的方式。它们关注组件之间的交互。

Windows服务是在计算机上长时间运行以执行某些任务的可执行文件。

您不会将其中一个用于另一个 - 它们执行完全不同的功能。

例如(为了突出差异),如果您想要一种方法将控制消息传递给您的服务,您可以将Web服务公开为第三方与您的服务通信的协议。


1

Web服务是一种用于网络上机器之间通信的软件系统。

这里是Web服务维基百科

相反,Windows服务是在本地计算机上运行的服务。

这里是Windows服务维基百科

它们是独立的技术,一个不能替代另一个。


1

我认为两者之间没有太大的区别,Web服务在IIS或Apache中运行,而Windows服务则不是。您可以使用远程调用来调用Windows服务方法,并且可以使用WCF创建Windows服务。Windows服务的方法也可以返回XML或JSON。

IIS 6不支持所有WCF功能,因此我们必须构建WCF Windows服务(这称为自托管)。

Web服务和Windows服务都是在后台运行的应用程序。您可以使用WCF构建这两种类型的服务。


2
你不能使用WCF构建Windows服务,但是你可以在Windows服务中托管WCF服务。 :) - markt

0

Web服务主要用于系统之间的应用程序集成。

Windows服务主要用于后台任务和计划任务。

Windows服务程序可以调用Web服务方法,但Web服务程序无法调用Windows服务方法。


一个Web服务程序可以调用Windows服务方法。 - tuinstoel

0

Web服务是由Web服务器托管的dll,作为Web应用程序运行,并可以根据请求启动。

Windows服务是由操作系统托管的exe,持续运行并等待请求。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接