在 Internet Information Services 中承载
若要承载 Windows Communication Foundation (WCF) 服务,一种选择是在 Internet Information Services (IIS) 应用程序内部承载。 此承载模型与 ASP.NET 和 ASP.NET Web 服务 (ASMX) 使用的模型类似。
IIS 的版本
可以在下列操作系统上的以下 IIS 版本上承载 WCF:
Windows XP SP2 上的 IIS 5.1。 此环境对于设计和开发 IIS 承载的应用程序非常有用,这些应用程序稍后将部署在 Windows Server 2003 等服务器操作系统上。
IIS 6.0(在 Windows Server 2003 上)。 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 Information Services 中的 WCF 服务。
WCF 服务和 ASP.NET
WCF 服务既可以与 ASP.NET 并行承载,也可以在 ASP.NET 兼容模式中承载。在该模式下,服务可以充分利用 ASP.NET Web 应用程序平台提供的功能。 有关这些功能的讨论,请参见 WCF 服务和 ASP.NET。