2009-07-10 53 views

回答

2

ServiceHost(无论是直接实例化,还是将其委托给IIS/WAS)都是WCF类的运行时环境 - 毕竟这只是一个简单的.NET类(它需要在某处运行) 。

ServiceHost基本上提供了围绕WCF服务的所有“管道” - 在这些端点上创建端点和监听器,以侦听消息并在进入时捕获这些消息;它提供了整个通道堆栈,从传输层到WCF的所有层,再通过反序列化器到调度器,然后决定调用哪个类和哪个类的方法,等等。

在WCF中,在您的服务类中,您只写出服务的实际业务逻辑 - ServiceHost及其所有类都处理接收消息和发回响应的所有细节。

Marc

1

如果您不使用IIS或Windows激活服务(WAS),ServiceHost类通常用于在独立应用程序(例如控制台应用程序)中托管您的WCF服务。

简而言之,它将处理COM(侦听特定服务的消息)。

您也可以从ServiceHost派生出来,根据需要添加自定义,并结合专业化的ServiceHostFactory。

请参阅MSDN example

HTH

菲尔

1

它创建一个负责的东西一样可靠传输和安全通道。它侦听传入的消息并调用您的操作方法。