在 Internet 信息服务中承载

若要承载 Windows Communication Foundation (WCF) 服务,一种选择是在 Internet 信息服务 (IIS) 应用程序内部承载。此承载模型与 ASP.NET 和 ASP.NET Web 服务 (ASMX) 使用的模型类似。

IIS 的版本

可以在下列操作系统上的以下 IIS 版本上承载 WCF:

  • Windows XP SP2 上的 IIS 5.1。此环境对于设计和开发 IIS 承载的应用程序非常有用,这些应用程序稍后将部署在 Windows Server 2003 等服务器操作系统上。

  • 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 应用程序(包括 ASP.NET 应用程序和 ASMX)一样,部署和管理 IIS 中承载的 WCF 服务。

  • 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 信息服务中的 WCF 服务

WCF 服务和 ASP.NET

WCF 服务既可以与 ASP.NET 并行承载,也可以在 ASP.NET 兼容模式中承载。在该模式下,服务可以充分利用 ASP.NET Web 应用程序平台提供的功能。有关这些功能的讨论,请参见 WCF 服务和 ASP.NET

另请参见

概念

使用 ServiceHostFactory 扩展宿主
部署承载于 Internet 信息服务中的 WCF 服务
WCF 服务和 ASP.NET
Internet 信息服务承载最佳实践
为 Windows Communication Foundation 配置 Internet Information Services 7.0

其他资源

Windows Server App Fabric 承载功能