创建一个简单的WCF程序(二)

2.        通过自我寄宿的方式寄宿服务,在解决方案中建立一个控制台应用程序

 

       WCF服务需要依存一个运行着的进程(宿主),服务寄宿就是为服务指定一个宿主的过程。WCF是一个基于消息的通信框架,采用基于终结点(Endpoint)的通信手段。终结点由地址(Address)、绑定(Binding)和契约(Contract)三要素组成

 

     服务寄宿的目的就是开启一个进程,为WCF服务提供一个运行的环境。通过为服务添加一个或多个终结点,使之暴露给潜给的服务消费者。服务消费者最终通过相匹配的终结点对该服务进行调用。我们可以完全通过代码的方式完成所有的服务寄宿工作,下面的代码体现了通过一个控制台应用对CalculatorService的寄宿:

 

 

a)         建立一个App.Config文件

 

App.Config上右键编辑WCF配置

 

                        i.              新建服务:从bin/debug中找到wcfdll文件,并选择其中的服务

 

                      ii.              指定服务的服务约定:直接下一步

 

                    iii.              基于Http的通信

 

                     iv.              指定终结点的地址http://127.0.0.1:1234/ CalculateService

 

                       v.              在高级->服务行为中:新建服务行为配置 (默认名为:NewBehavior0)

 

                     vi.              添加一个行为服务扩展元素:servicemetadata

 

                   vii.              并双击这个元素,在HttpGetUrl中输入:http://127.0.0.1:1234/ CalculateService/abc

 

                 viii.              并将HttpGetEnabled设置为true

 

                     ix.              最后选择“服务”结点下的wcf服务,并在behaviorConfiguration中选择刚才新建的服务行为配置名(NewBehavior0)

 

                       x.              保存退出

 

b)        main函数中输入:

 

                   using (ServiceHost host = new ServiceHost(typeof(CalculateService)))

 

          {

 

              host.Opened += delegate

 

              {

 

                 Console.WriteLine("CalculaorService已经启动,按任意键终止服务");

 

              };

 

              host.Open();

 

              Console.Read();

 

          }

 

3.         创建一个独立的Web应用程序

 

a)         “添加服务引用”

 

b)        输入:http://127.0.0.1:1234/CalculateService/abc

 

c)         给一个引用名:MyWcf

 

d)        在页面中输入:

 

protected void Page_Load(object sender, EventArgs e)

 

        {

 

            CalculateServiceClient service = new CalculateServiceClient();

 

            double sum = service.Add(4, 7);

 

            Response.Write(sum);

 

        }

你可能感兴趣的:(wcf,binding,service,object,dll,框架)