托管 Windows Communication Foundation (WCF) 服务的一个选项位于 Internet Information Services (IIS) 应用程序中。 此托管模型类似于 ASP.NET 和 ASP.NET Web 服务 (ASMX) Web 服务使用的模型。
IIS 的版本
WCF 可以托管在以下操作系统上的 IIS 版本上:
Windows XP SP2 上的 IIS 5.1。 此环境对于稍后部署在 Windows Server 2003 等服务器作系统上的 IIS 托管应用程序的设计和开发非常有用。
Windows Server 2003 上的 IIS 6.0。 IIS 6.0 提供了一个高级进程模型,可提供改进的可伸缩性、可靠性和应用程序隔离性。 此环境适用于专门使用 HTTP 通信的 WCF 服务的生产部署。
Windows Vista 和 Windows Server 2008 上的 IIS 7.0。 IIS 7.0 提供与 IIS 6.0 相同的高级进程模型,但使用 Windows 进程激活服务(WAS)允许通过 HTTP 以外的协议进行激活和网络通信。 此环境适用于通过 WCF 支持的任何网络协议(包括 HTTP、net.tcp、net.pipe 和 net.msmq)进行通信的 WCF 服务。 有关 WAS 的详细信息,请参阅 Windows 进程激活服务中的托管。
Windows Server AppFabric 与 IIS 7.0 和 Windows 进程激活服务(WAS)配合使用,为 NET4 WCF 和 WF 服务提供丰富的应用程序托管环境。 这些优势包括进程生命周期管理、进程回收、共享托管、快速故障保护、进程孤立、按需激活和运行状况监视。 有关详细信息,请参阅 AppFabric 托管功能 和 AppFabric 托管概念。
IIS 托管的优点
在 IIS 中托管 WCF 服务具有以下优点:
与任何其他类型的 IIS 应用程序一样部署和管理 IIS 中托管的 WCF 服务,包括 ASP.NET 应用程序和 ASMX。
IIS 提供进程激活、运行状况管理和回收功能,以提高托管应用程序的可靠性。
与 ASP.NET 一样,ASP.NET 中托管的 WCF 服务可以利用 ASP.NET 共享托管模型,其中多个应用程序驻留在通用工作进程中,以提高服务器密度和可伸缩性。
IIS 中托管的 WCF 服务使用与 ASP.NET 2.0 相同的动态编译模型,这简化了托管服务的开发和部署。
决定在 IIS 中托管 WCF 服务时,请务必记住 IIS 5.1 和 IIS 6.0 仅限于 HTTP 通信。 有关选择托管环境的详细信息,请参阅 托管服务。
部署 IIS 托管的 WCF 服务
开发和部署 IIS 托管的 WCF 服务包括以下任务:
确保正确安装并注册 IIS、ASP.NET、WCF 和 WCF HTTP 激活组件。
创建新的 IIS 应用程序,或重复使用现有的 ASP.NET 应用程序。
为 WCF 服务创建 .svc 文件。
将服务实现部署到 IIS 应用程序。
配置 WCF 服务。
有关这些任务的讨论,请参阅部署承载于 Internet Information Services 中的 WCF 服务。
WCF 服务和 ASP.NET
WCF 服务可以与 ASP.NET 并行托管,也可以在 ASP.NET 兼容模式下托管,在此模式下,服务可以充分利用 ASP.NET Web 应用程序平台提供的功能。 有关这些功能的讨论,请参阅 WCF 服务和 ASP.NET。