异步调用Restful的WCF服务

上周在pedramr blog上看到有人问是否能够异步调用Restful的WCF服务,下面便是具体实现异步调用Restful的WCF实现细节。通过本文的学习,有助于如下知识的掌握:

  1. 如何设定WCF的Restful支持
  2. 如何异步调用Restful的WCF服务

第一步:创建一个解决方案:AsyCallRestfulWcf,该解决方案包含下面四个项目:

项目名称

备注

AsyCallRestfulWcf.Contracts

WCF服务的契约项目,包含服务契约和数据契约的定义

AsyCallRestfulWcf.Service

WCF服务的具体实现    

AsyCallRestfulWcf.Host

WCF服务的承载

AsyCallRestfulWcf.HttpClient

用Http 的方式异步调用WCF服务客户端

 

第二步:在项目AsyCallRestfulWcf.Contracts中创建服务契约IService.cs和数据契约Person.cs

Person.cs

Person.cs

IService.cs 

IService.cs


第三步:在项目AsyCallRestfulWcf.Service中创建服务实现类Service.cs

Service.cs  

Service.cs

在服务方法中,用System.Threading.Thread.Sleep(5000);模拟一个比较耗时的操作  

第四步 实现WCF服务的承载项目:AsyCallRestfulWcf.Host

添加一个应用程序配置文件app.config和代码文件Programe.cs

App.config 

App.config

Programe.cs  

Programe.cs

在App.config中,要使WCF支持Restful,要使用的binding是webHttpBinding

第五步:实现异步调用的客户端:AsyCallRestfulWcf.HttpClient

添加windows窗体Form1.

后台代码为:  

Form1.cs

现在就可以调试浏览了,将解决方案设置成多启动的、  

  

然后F5,出现下面的界面  

 和  

 表明运行正常  

点击开始调用,等待几秒后,下面的文本框便出现文字

在开始调用之后,点击取消调用可以取消请求  

国际惯例,项目代码:

posted @ 2008-07-12 13:32 Robin Zhang 阅读(...) 评论(...) 编辑 收藏