.net - WAS 托管与 Windows 服务托管

标签 .net wcf iis-7

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

由于我们使用的是 Windows 2008,因此我认为利用 Windows Process Activation Service (WAS) 会很好,尽管对项目的感觉似乎是使用 Windows 服务会更好。

那么与 Windows 服务相比,使用 WAS 托管 WCF 服务有什么不足之处呢?使用 Windows 服务是否有任何真正的优势,或者是要走的路?

最佳答案

最近我不得不回答非常相似的问题,这就是我决定使用 IIS 7.0 和 WAS 而不是 Windows 服务基础架构的原因。

  • IIS 7.0 是更强大的主机,它具有许多使调试变得容易的功能。失败的请求跟踪、工作进程回收、进程孤立等等。
  • IIS 7.0 为您提供了更多选项来指定工作进程在某些情况下应该发生什么。
  • 如果您在 IIS 下托管您的服务,则在第一个请求之前它没有分配工作进程。从我的角度来看,这是一种理想的行为,但在您的情况下可能会有所不同。 Windows 服务使您能够以更确定的方式启动服务。
  • 根据我的经验,WAS 本身并不能提供更高的可靠性。它的最大优势在于它将 IIS 的丰富性暴露给使用不同于 HTTP 的协议(protocol)的应用程序。我的意思是:TCP、命名管道和 MSMQ。
  • 我知道使用 WAS 的唯一缺点是您的服务所暴露的地址需要符合某种模式。描述了 MSMQ 的情况 here
  • 关于.net - WAS 托管与 Windows 服务托管,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/97830/

    相关文章:

    c# - 系统.BadImageFormatException : 64bit MVC 2 project - with step by step instruction to reproduce the error

    html - 在保留基本格式的同时,我可以使用什么来清理接收到的 HTML?

    wcf - 您可以将 WCF 数据服务(ne OData、ne Astoria、ne ADO.NET 数据服务)与 NetTcpBinding 一起使用吗?

    c# - (WCF - C#) 返回包含不同自定义类集合的自定义类

    wcf - IBM DataPower 3.7.1.x 与 WCF 客户端相关的问题

    ssl - https URL Rewrite 重写到域根,不保留 url 结构

    c# - 运算符 '+' 不能应用于类型 'byte[]' 和 'int' 的操作数

    .net - wpf绑定(bind)事件发生在窗口关闭之后

    asp.net - 由于检索用户的本地应用程序数据路径失败,无法生成 SQL Server 的用户实例

    asp.net-mvc - 在 Asp.net MVC 中抛出/返回 404 actionresult 或异常并让 IIS 处理它