关于.net:WAS托管与Windows Service托管

关于.net:WAS托管与Windows Service托管

WAS hosting vs. Windows Service hosting

我正在使用Windows 2008,.NET 3.5和WCF进行一些内部服务的项目,并且出现了如何托管服务的问题。

由于我们使用的是Windows 2008,所以我认为最好利用Windows进程激活服务(WAS),尽管该项目上的感觉似乎是使用Windows Services会更好。

那么,与Windows服务相比,使用WAS承载WCF服务的缺点何在? 使用Windows服务有真正的优势吗?


最近,我不得不回答非常类似的问题,这就是为什么我决定使用IIS 7.0和WAS而不是Windows Service基础结构的原因。

  • IIS 7.0是更强大的主机,它具有许多使调试变得容易的功能。失败的请求跟踪,工作进程回收,进程孤立等等。
  • IIS 7.0为您提供了更多选择,以指定在某些情况下工作进程应执行的操作。
  • 如果您将服务托管在IIS下,则直到第一个请求时,才会为其分配工作进程。从我的角度来看,这是一种理想的行为,但在您的情况下可能有所不同。 Windows Service使您能够以更具确定性的方式启动服务。
  • 根据我的经验,WAS本身并不能提供更高的可靠性。最大的优点是,它将IIS的丰富性暴露给使用不同于HTTP协议的应用程序。我的意思是:TCP,命名管道和MSMQ。
  • 我知道使用WAS的唯一缺点是,您的服务所暴露的地址必须符合某种模式。这里介绍了MSMQ的外观

  • 推荐阅读