Windows Communication Foundation (WCF) 服务可以托管在任何 .NET Framework 应用程序中。 自承载服务是最灵活的托管选项,因为它需要部署的基础结构最少。 但是,它也是最不可靠的托管选项,因为托管应用程序不提供 WCF 中其他托管选项的高级托管和管理功能,例如 Internet Information Services(IIS)和 Windows 服务。
若要创建自承载服务,请创建并打开一个实例,该实例 ServiceHost启动侦听消息的服务。 有关详细信息,请参阅 如何:在托管应用程序中托管 WCF 服务。
有关如何定义协定、实现协定并在托管应用程序内托管服务的完整示例,请参阅 入门教程 和 自承载。
以下部分介绍使用此托管选项的常见方案。
控制台应用程序
自托管启用的常见场景是在控制台应用程序中运行的 WCF 服务。 在控制台应用程序中托管 WCF 服务通常在服务开发阶段很有用。 这使得它们易于调试,可以轻松地从中获取跟踪信息,以找出应用程序内部发生的情况,并通过将它们复制到新位置轻松移动。
丰富的客户端应用程序
自托管能够启用的其他常见场景包括丰富的客户端应用程序,例如基于 Windows Presentation Foundation(WPF)或 Windows 窗体(WinForms)的应用程序。 此托管选项还使丰富的客户端应用程序(如 WPF 和 WinForms 应用程序)可以轻松地与外界通信。 例如,使用 WPF 作为其用户界面的对等协作客户端,还托管一个 WCF 服务,该服务允许其他客户端连接到该客户端并共享信息。