在 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.0IIS 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 进程激活服务中承载

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 和 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