atc*_*way 10 .net wcf windows-services iis-7.5 windows-server-2008-r2
我有一个简单直接的问题:在IIS 7.5与Windows服务中比较托管WCF服务时,我是否有任何性能优势(或任何其他类型的好处)?
我对这个主题并不陌生,实际上在两个托管环境中托管了几个WCF服务.然而,我即将开始一项使用较多并希望"重新访问"该主题的新服务.现在我倾向于使用Windows服务.
我已阅读如下帖子:IIS WCF服务托管与Windows服务,它提供了一些很好的信息,但有点过时(是的,即使只有1.5岁;仍使用代号"都柏林技术").
对我来说没有针对Windows服务的原因,因为我对设置,部署和配置(包括将SSL证书应用于托管WCF服务的端口)非常熟悉,所以这对我而言对IIS来说并不是什么大问题.
我一直认为IIS中的应用程序回收对于托管WCF服务来说是一个缺点,允许在通信中可能出现小的中断.我知道有一个.asmx IIS托管服务(转换为WCF),我已经收到随机的'401 Unauthorized'(我的意思是非常随意,就像每5-10,000个电话那样)并且我标记了与IIS及其能力的特性在没有回收应用程序池的情况下保持100%的通信时间(可能导致问题? - >这个问题在这里没有问题,仅供参考).我很想知道IIS.
因此,我希望在Windows服务与IIS 7.5中在Windows Server 2008 R2上托管WCF服务时,当前一天的观点(许多MSDN比较图表也已过时,总是与IIS 6相比).谢谢!!
随着AppFabric for IIS 的发布,在IIS 7.5上托管WCF服务变得更容易,更可靠.AppFabric允许您配置服务以启动应用程序池启动并防止池像普通Web应用程序一样进行回收.它还提供了允许WCF服务记录有关其运行状况的信息并监视服务的方法.
对于我最近的WCF项目,我已经使用带有.svc扩展名的ASP.Net 4和AppFabric来托管代码.(目前,AppFabric已发布路由的监控服务 - 因此需要.svc文件)
以下是一些关于WCF和AppFabric的更有用的链接:
我在IIS方法中看到的另一个优点是它允许您在其旁边创建页面以帮助监视,维护和配置服务.使用Windows服务,您必须手动编辑配置文件或创建应用程序来为您处理它.在我的书中,在WebForms/MVC应用程序旁边托管WCF进行管理的能力是一个巨大的优势.显然,您需要确保以某种方式保护它以防止其他人窥视并查看状态/配置它.