我们什么时候应该在IIS中托管WCF服务?什么时候我们应该在Windows服务中托管?

时间:2011-09-26 16:26:25

标签: windows wcf iis service

我需要托管我的WCF服务,但我无法决定是否应该在IIS或Windows服务中托管它?

请问有什么优点,缺点和好处?

谢谢

2 个答案:

答案 0 :(得分:4)

无论如何,版本7下的IIS对于任何严肃的托管都是不可能的....

至于IIS7 + / WAS与NT服务中的自托管:

  • IIS7 / WAS设置将“按需加载”,例如当您的第一个请求进入时,将创建ServiceHost,然后该服务主机创建服务类来处理请求。从内存的角度来看这是有益的(如果没有请求进入,则不使用ServiceHost的内存),但是当IIS首次需要启动服务主机时,第一次调用会有一些额外的开销

    < / LI>
  • NT服务允许您预先创建ServiceHost并打开它,以便它可以立即处理请求;更多的内存使用,但更敏感,至少在“第一次调用”

自托管的另一个好处:您可以100%负责服务主机何时启动,暂停,停止等等。使用IIS / WAS,您有时会受到IIS的支配,并且有可能在最糟糕的时刻回收应用程序池......

答案 1 :(得分:2)

IIS的主要优点是它可以为您处理服务的生命周期:激活,回收......

如果您没有v7,它的主要缺点是没有WAS它只能托管基于http的Web服务

如果发生致命错误,服务需要更加小心......然后需要安装,而网站创建后可以复制到其网站文件夹

如果您的iis版本是&gt; = 7,那么我没有看到很多人对使用WAS感兴趣,因为它支持所有wcf传输,其他人可能会有不同的视图...