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

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

那么与 Windows 服务相比,使用 WAS 托管 WCF 服务有什么不足呢?使用 Windows 服务有什么真正的优势吗?还是 WAS 才是正确的选择?

有帮助吗?

解决方案

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

  1. IIS 7.0 是更强大的主机,它具有许多使调试变得容易的功能。失败的请求跟踪、工作进程回收、进程孤立等等。
  2. IIS 7.0 为您提供了更多选项来指定工作进程在某些情况下应发生的情况。
  3. 如果您将服务托管在 IIS 下,则在第一个请求之前不会为其分配工作进程。从我的角度来看,这是一种理想的行为,但在您的情况下可能有所不同。Windows 服务使您能够以更确定的方式启动服务。
  4. 根据我的经验,WAS 本身并没有提供更高的可靠性。它的最大优点是它向使用不同于 HTTP 的协议的应用程序展示了 IIS 的丰富功能。我所说的不同是指:TCP、命名管道和 MSMQ。
  5. 据我所知,使用 WAS 的唯一缺点是您的服务暴露的地址需要符合某种模式。描述了 MSMQ 的情况 这里
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top