看起来微软允许在IIS之外托管WCF服务是自己给自己挖了一个坑。从我的角度来看,IIS对于服务而言是相对简单但却冗余的层。WCF的引入极大地简化了服务托管,使得IIS变得不再重要。那么你认为呢?我有什么遗漏吗?为什么我要使用IIS来托管WCF服务呢?因为我没有看到理由。
看起来微软允许在IIS之外托管WCF服务是自己给自己挖了一个坑。从我的角度来看,IIS对于服务而言是相对简单但却冗余的层。WCF的引入极大地简化了服务托管,使得IIS变得不再重要。那么你认为呢?我有什么遗漏吗?为什么我要使用IIS来托管WCF服务呢?因为我没有看到理由。
AspNetCompatibilityRequirementsMode
属性设置为Required。这还使您可以访问HttpContext.Current,以轻松检索后置值、cookie等。
http://msdn.microsoft.com/en-us/library/ms734710.aspx
我有些同意。尽管Pauli在他的帖子中提到了许多优点(对此表示+1),但我认为选择IIS作为WCF的原因有几个:
就目前而言,我不同意在Windows Server 2008/2008R2中使用IIS 7/7.5之外的主机。是的,在IIS 6中,您有充分的理由在IIS之外进行主机托管(例如,如果您正在使用net.tcp绑定)。但是,与自主托管相比,IIS提供更好的身份验证、负载平衡、容错、监控等功能。例如,我从未成功地将带有客户端证书的SSL与自托管服务正常工作。或者尝试基于IP地址进行限制等。以.svc结尾的服务URL也不再有效,因为WCF 4.0已经更新了这一点。另一个优点是,大多数系统管理员都熟悉IIS管理器,并且可以轻松地通过GUI更改web.config中的所有设置以进行操作支持。部署变得更加容易,您可以从暂存环境克隆IIS站点到生产环境。通过IIS的Appfabric扩展,您可以获得非常详细的监视和仪表板,用于监视您的服务调用(例如,每秒钟的调用次数、失败的调用次数、平均调用持续时间等),以及工作流托管服务的服务调用持久性等。您还可以从一个中央控制台监视整个公司的所有IIS站点,我认为甚至还有一个将appfabric与SCOM集成的功能。
简而言之,我认为对于企业级托管,应选择IIS和Appfabric作为WCF服务的托管。