我需要托管我的WCF服务,但我无法决定是否应该在IIS或Windows服务中托管它?
请问有什么优点,缺点和好处?
谢谢
答案 0 :(得分:4)
无论如何,版本7下的IIS对于任何严肃的托管都是不可能的....
至于IIS7 + / WAS与NT服务中的自托管:
IIS7 / WAS设置将“按需加载”,例如当您的第一个请求进入时,将创建ServiceHost
,然后该服务主机创建服务类来处理请求。从内存的角度来看这是有益的(如果没有请求进入,则不使用ServiceHost的内存),但是当IIS首次需要启动服务主机时,第一次调用会有一些额外的开销
NT服务允许您预先创建ServiceHost
并打开它,以便它可以立即处理请求;更多的内存使用,但更敏感,至少在“第一次调用”
自托管的另一个好处:您可以100%负责服务主机何时启动,暂停,停止等等。使用IIS / WAS,您有时会受到IIS的支配,并且有可能在最糟糕的时刻回收应用程序池......
答案 1 :(得分:2)
IIS的主要优点是它可以为您处理服务的生命周期:激活,回收......
如果您没有v7,它的主要缺点是没有WAS它只能托管基于http的Web服务
如果发生致命错误,服务需要更加小心......然后需要安装,而网站创建后可以复制到其网站文件夹
如果您的iis版本是> = 7,那么我没有看到很多人对使用WAS感兴趣,因为它支持所有wcf传输,其他人可能会有不同的视图...