wcf1

2010-04-13 10:50 阅读(?)评论(0)

    

创建一个终结点并启动侦听

接下来我们要使用地址(address)、绑定(binding)和契约(contract)来构建一个终结点(endpoint)并在此终结点上

侦听发送进来的消息。通常来说,一个WCF接受程序可以构建和使用多个终结点,并且每个终结点都需要一个地址、一个绑定和一个契约。System.ServiceModel.ServiceHost类型构建和托管终结点,并管理接受应用底层结构的其他部分,比如线程

和对象的生命周期。下面代码块演示了如何实例化ServiceHost,如何添加终结点和如何开始侦听进入的消息:

// File: HelloWCFApp.cs
 static void Main(){
    
// define where to listen for messages定义侦听消息的地址
    Uri address = new Uri("http://localhost:4000/IHelloWCF");
    
// define how to exchange messages定义如何交换消息
    BasicHttpBinding binding = new BasicHttpBinding();
    
// instantiate a ServiceHost, passing the type to instantiate实例化ServiceHost,传递服务类型
    
// when the application receives a message
    ServiceHost svc = new ServiceHost(typeof(HelloWCF));
    
// add an endpoint, passing the address, binding, and contract增加终结点、绑定和契约
    svc.AddServiceEndpoint(typeof(IHelloWCF), binding, address);
    
// begin listening开始侦听
    svc.Open();
    
// indicate that the receiving application is ready and指示应用准备接受消息
    
// keep the application from exiting immediately保持应用程序不会立即退出
    Console.WriteLine("The HelloWCF receiving application is ready");
    Console.ReadLine();
    
// close the service host关闭宿主
    svc.Close();
 }
注意调用ServiceHost的构造函数的参数。ServiceHost构造函数被重载多次,在某些形式上,每个重载接受的都是WCF
底层结构分发请求消息的对象的类型定义。前面代码所示ServiceHost构造函数表示消息基础结构会分发接受到的消息给
HelloWCF服务类型的一个实例。

也会发现,前面代码里调用了svc.AddServiceEndpoint 和svc.Open。AddServiceEndpoint实例方法设置ServiceHost

对象的属性,这样它将使用地址、绑定和契约参数执行的行为来侦听消息。要着重指出的是AddServiceEndpoint方法没有

开始循环侦听;它仅仅是简单地改变了ServiceHost对象的状态(第10章会详细讨论)。ServiceHost实例的Open方法构建

了消息基础结构,并开始循环侦听。Open方法会验证ServiceHost对象的状态,从它的状态里构建终结点,并且开始侦听。

 
表  情:
加载中...
 

请各位遵纪守法并注意语言文明