我正在开发一个使用Windows 2008,.NET 3.5和WCF的项目来处理一些内部服务,并且出现了如何托管服务的问题.
由于我们使用的是Windows 2008,我认为利用Windows进程激活服务(WAS)会很好,尽管项目的感觉似乎是使用Windows服务会更好.
那么,与Windows服务相比,使用WAS来托管WCF服务的最低点是什么?使用Windows服务有什么真正的优势,还是可行的?
最近我不得不回答非常相似的问题,这就是我决定使用IIS 7.0和WAS而不是Windows服务基础架构的原因.
IIS 7.0是一个更强大的主机,它带有许多功能,使调试变得容易.请求跟踪失败,工作进程回收,进程孤立等等.
IIS 7.0为您提供了更多选项,以指定在某些情况下工作进程应该发生什么.
如果您在IIS下托管服务,则在第一个请求之前,它没有为其分配工作进程.从我的角度来看,这是一种理想的行为,但在你的情况下可能会有所不同.Windows服务使您能够以更确定的方式启动服务.
根据我的经验,WAS本身并不能提高可靠性.它的最大优点是它将IIS的丰富性暴露给使用不同于HTTP的协议的应用程序.我的意思不同:TCP,命名管道和MSMQ.
我所知道的使用WAS的唯一缺点是你的服务所暴露的地址需要符合某种模式.这里描述了MSMQ的情况