有人举例说明我为什么要自我托管WCF服务

RJ.*_*RJ. 10 .net asp.net wcf

我想我的想法是如此忙于IIS和Web应用程序,我想不出有什么理由去解决使用自托管WCF服务的麻烦.我一直有IIS的可用性,因此创建一个自托管的WCF服务似乎比我想要的工作更多.我为什么要这样做?

mar*_*c_s 13

很多要点:

  • 不需要IIS - 这在某些服务器上可能是一个很好的优点
  • 您可以完全定义服务地址 - 使用IIS,它们由服务器名称,虚拟目录名称以及SVC文件的名称和扩展名决定(例如http://server/virtualdir/yourservice.svc,在使用自托管时,您可以使用http://Server:7171/Services/MegaService或任何您喜欢的)
  • 没有遇到与回收的应用程序池相关的问题的风险(通过为WCF服务使用单独的专用应用程序池可以显着减少这种情况)
  • 能够停止和启动NT服务,从而使这些服务脱机一点(我相信不太容易用IIS完成)
  • 更多地控制创建和选项 ServiceHost
  • 支持开箱即用的所有协议 - netTcpBinding等需要在IIS7上执行额外的步骤(可能会忘记),并且在IIS6上无法执行