异步调用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 @   Robin Zhang  阅读(9905)  评论(29编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示