【问题标题】:When should we host WCF service in IIS and when should we host in a windows service?我们什么时候应该在 IIS 中托管 WCF 服务,什么时候应该在 Windows 服务中托管?
【发布时间】:2011-11-25 08:49:43
【问题描述】:

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

请问一个比另一个有什么优点、缺点、好处?

谢谢

【问题讨论】:

    标签: windows wcf iis service


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      如果出现致命错误,服务需要更加小心...然后需要安装,而网站一旦创建就可以复制到其 web 文件夹中

      如果您的 iis 版本 >= 7,那么我认为不使用 WAS 的兴趣不大,因为它支持所有 wcf 传输,但其他人可能有不同的看法...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-09
        • 1970-01-01
        • 2016-04-19
        • 2011-09-25
        • 2021-09-07
        • 1970-01-01
        相关资源
        最近更新 更多