摘要
本文讨论 Windows Communication Foundation (WCF) 承载方案和 WCF 服务的使用。传统的 ASMX Web 服务通常仅由 Microsoft Internet 信息服务 (IIS) 承载。在 Microsoft .NET Framework 3.0 中,WCF 服务的承载方案得到了极大的增强。我们将讨论如何将承载模型扩展为包括 Windows 服务和自承载方案。此外,我们还将详细探讨可用于 WCF 服务的 IIS 承载(版本 5.1、6.0 和 7.0)和 Windows 激活服务 (WAS) 承载方案。本文内容是根据 Apress 出版的《Pro WCF: Practical Microsoft SOA Implementation》一书第 5 章内容编撰的。这本书是由 Avanade 公司的全球顾问团队编写的。其主要针对入门级到中级读者。包括这本书在内,Apress 已出版了一系列有关 Windows Presentation Foundation (WPF)、Windows Communication Foundation (WCF) 和 Windows Workflow Foundation (WF) 的丛书。
简介
如果企业依赖于面向服务的体系结构,就必须确保服务能够正常可靠的运行。应用程序可靠性背后最重要的动因是在哪里托管服务以及如何托管服务。在考虑托管服务时,您必须事先考虑几个问题:服务有哪些可用性方面的要求?如何管理和部署服务?是否需要提供对旧版本服务的支持?
了解如何满足这些业务要求对于开发成功的服务是至关重要的。必须自己提供宿主来承载服务。Windows Communication Foundation (WCF) 本身没有附带宿主,而是提供了一个被称为 ServiceHost 的类,该类允许您在自己的应用程序中承载 WCF 服务。您不必考虑任何网络传输方面的细节,即可确保服务能够被访问。只需以编程方式或声明方式对服务的端点进行配置,然后调用 ServiceHost 的 Open 方法即可。ServiceHostBase 和 ServiceHost 中集成了有关绑定、通道、调度程序和侦听器的所有一般功能。这意味着用于承载服务的应用程序(运行 ServiceHost 的应用程序)的负载将远远低于您之前预期的水平。
本章讨论何种类型的应用程序可以为 ServiceHost 提供宿主环境。此外,您还会对使用不同应用程序内承载的服务时存在的差异有所了解。
读完本章后,您将学到以下知识:
•适用于您的各种不同的承载方案
•每种承载方案有哪些优点和缺点
•根据具体情况选择承载方案的指导
•有关 Microsoft 如何实现不同承载方案以及每种方案在哪些方面具有可扩展性的体系结构方面的指导
研究承载方案
在 Microsoft .NET 平台上,使用 Microsoft Visual Studio.NET 可以创建几种不同类型的托管 Windows 应用程序:
•WinForms 应用程序
•控制台应用程序
•Windows 服务
•承载于 Internet 信息服务 (IIS) 中的 Web 应用程序 (ASP.NET)
•IIS 7.0 内提供的 WCF 服务以及 Windows Vista 或 Windows Server 2007 中的 WAS

