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

Inf*_*ner 6 windows iis service wcf

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

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

谢谢

mar*_*c_s 4

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

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

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

  • NT Service 允许您预先创建ServiceHost并打开它,以便它立即准备好处理请求;内存使用量更多一点,但响应速度更快一点,至少在“第一次调用”时

自托管的另一个好处是:您可以 100% 掌控服务主机何时启动、暂停、停止等。使用 IIS/WAS,您有时会受到 IIS 的摆布,因为它有可能在最糟糕的时刻回收应用程序池......