教你如何在实战项目中使用WCF
我们都知道调用WCF直接在Service References中引用可以远程调用的WCF Url就行了。
但是我们想过没,在Development环境中可以这样做,但是QA、UAT、Production上我们怎么做呢?
WCF的通信方式主要有Http和Tcp,这次我们用Http。
好了,接下来老赵给你一个ideal,不算good。
1.新建一个WCF Service —‘BeautifulGirls.svc ',定义一个方法GetBeautifulGirlsDetails(string phoneNumber);
实现功能就是通过手机号获取‘美女’的详细信息。
2.在新建一个solution,引用wcf url,会自动生成一段References code和在web.config中添加一段serviceModel code,如下:

<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IBeautifulGirls" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:61909/BeautifulGirls.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IBeautifulGirls"
contract="BeautifulGirls.IBeautifulGirls" name="BasicHttpBinding_IBeautifulGirls" />
</client>
</system.serviceModel>
其中的原理我就不多说了,现在我们需要做的是将那段自动生成的References code放到一个class -BeautifulGirlsDefinition.cs中。
3.在appsetting中添加如下配置:
<!-- Real name check -->
<add key="BeautifulGirls_EndPointName" value="BasicHttpBinding_IBeautifulGirls"/>
<add key="BeautifulGirlsUrl" env="Development" value="http://hddcwiweb.dev:61909/BeautifulGirls.svc"/>
<add key="BeautifulGirlsUrl" env="QA" value="http://hddcwiweb.qa:61909/BeautifulGirls.svc"/>
<add key="BeautifulGirlsUrl" env="UAT" value="http://hddcwiweb.uat:61909/BeautifulGirls.svc"/>
<add key="BeautifulGirlsUrl" env="Production" value="http://hddcwiweb.prod:61909/BeautifulGirls.svc""/>
4.读取配置文件中endpoint name和url。
var url=GetConfigvalue("BeautifulGirlsUrl");
var endpoint=GetConfigvalue("BeautifulGirls_EndPointName");
BeautifulGirlsClient client=new BeautifulGirlsClient(endpoint,url);
string jsonstr=client.GetBeautifulGirlsDetails("");
其实这里就是利用了
WCFClient(string endpointConfigurationName, string remoteAddress) :
base(endpointConfigurationName, remoteAddress)
这个扩展方法,把不同环境的url配置到appsetting中,灵活利用。Over!下班。。。
教你如何在实战项目中使用WCF的更多相关文章
- 赵本山 教你如何在实战项目中使用WCF
我们都知道调用WCF直接在Service References中引用可以远程调用的WCF Url就行了. 但是我们想过没,在Development环境中可以这样做,但是QA.UAT.Productio ...
- 个人项目中的WCF使用
今天闲着无事,给大家分享一下我的一个项目中WCF的使用.我这项目使用的是Silverlight,至于其他类型的使用方法也是一样的. 1.建立一个Silverlight带Web项目的解决方案. 2.在w ...
- 项目中使用WCF替换asmx Web service总结
以前项目解决方案中,用http协议的asmx Web service作服务器数据访问入口,在SoapHeader中写入用户名和加盐密码进行身份认证. http asmx服务是明文传输,传输过程中数据很 ...
- 实战项目中Java heap space错误的解决
部标GPS通讯系统在上线之后,经过不断调试,终于稳定运行一段时间,后来又遇到了Java heap space错误异常!日志如下: 说明系统中有未释放的对象.如何找出这些未释放对象以及监控JVM堆内存, ...
- IE6滤镜在实战测试中能让父层里面的子元素产生阴影
1.写法一: <div class="cornerbg"> <p class="title-file">------</p& ...
- ionic 项目中添加modal的步骤流程
1.首先在templates文件夹下面定义一个新页面,xxx.html,template文件夹在空项目里面是没有的,需要手动添加一个,放在WWW文件夹下面. <ion-modal-view> ...
- 我是如何在公司项目中使用ESLint来提升代码质量的
ESLint:你认识我吗 ESLint是一个语法规则和代码风格的检查工具. 和学习所有编程语言一样,想要入门ESLint,首先要去它的官网看看:https://eslint.org/. ESLint的 ...
- go语言实战教程:Redis实战项目应用
项目Redis配置 在实战项目中使用Redis功能,首先需要进行Redis配置.本实战项目中,关与Redis的配置项包含:连接类型.地址.端口.公共前缀.以上配置项被定义包含在Iris框架的redis ...
- go语言实战教程:实战项目资源导入和项目框架搭建
从本节内容开始,我们将利用我们所学习的Iris框架的相关知识,进行实战项目开发. 实战项目框架搭建 我们的实战项目是使用Iris框架开发一个关于本地服务平台的后台管理平台.平台中可以管理用户.商品.商 ...
随机推荐
- 解决运行scrapy是报错No module named cryptography,解决cryptography的安装问题,解决libffi的安装问题
在linux下配置完运行是出现ImportError: No module named cryptography.hazmat.bindings.openssl.binding的错误.原因是crapt ...
- 视频录制软件&远程支持软件
视频录制软件 软件名:SCREEN2SWF 录制完成后,可以剪辑: 工程文件,需要保存为svp文件:将视频文件保存为.exe self play 文件,或者.swf flash 文件. 远程支持,远程 ...
- Linux环境搭建:1. 安装VMware
我家淘宝店,主要协助同学做毕业设计:https://shop104550034.taobao.com/?spm=2013.1.1000126.d21.pPCzDZ 1. 下载VMware 能够到我的3 ...
- 【iOS系列】-iOS查看沙盒文件图文教程(真机+模拟器)
[iOS系列]-iOS查看沙盒文件图文教程(真机+模拟器) 1:模拟器 1.1 方法1: 程序中打印一下的地址,能直接前往沙盒路径. NSString *path = [NSSearchPathFor ...
- 2016/4/7 datatype:①json ②XML
①JSON 1,postjsonxml.php json用循环方式处理传来的值 for(key in data) for(var i=0;i<data.length;i++){data ...
- Hibernate 之 How
分享自: http://blog.csdn.net/jnqqls/article/details/8242520 在上一篇文章Hibernate 之 Why? 中对Hibernate有了一个初步的了解 ...
- HBase使用教程
1 基本介绍 1.1 前言 HBase – Hadoop Database.是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文"Bigta ...
- YTU 2572: 猜灯谜
2572: 猜灯谜 时间限制: 1 Sec 内存限制: 128 MB 提交: 154 解决: 91 题目描述 A 村的元宵节灯会上有一迷题: 请猜谜 * 请猜谜 = 请边赏灯边猜 小明想,一定是每 ...
- Fresco-Facebook的图片加载框架的使用
目前常用的开源图片加载框架有:1.Universal-Image-Loader,该项目存在于Github上面https://github.com/nostra13/Android-Universal- ...
- POJ3617:Best Cow Line (贪心&&后缀数组)
FJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of the Year" competiti ...