知道WCF的地址用工厂通道方式快速调用WCF
1 using System;
2 using System.ServiceModel;
3 using System.ServiceModel.Description;
4 using System.ServiceModel.Channels;
5
6 namespace ZhiYuan.ServiceProxy
7 {
8 public class WCFClient<T>
9 {
10
11 public static T CreateService(Binding bind, EndpointAddress address)
12 {
13 ChannelFactory<T> channelFactory = new ChannelFactory<T>(bind);
14 return channelFactory.CreateChannel(address);
15 }
16 public static T CreateService(string uri)
17 {
18
19 #region TCP/IP方案
20 // NetTcpBinding bind = new NetTcpBinding();
21 // EndpointAddress address = new EndpointAddress("net.tcp://127.0.0.1:1785/Service");
22 // EndpointAddress metaAddress = new EndpointAddress("net.tcp://127.0.0.1:1785/Service/MEX");
23 #endregion
24
25 BasicHttpBinding bind = new BasicHttpBinding();
26 bind.MaxBufferSize = int.MaxValue;
27 bind.MaxReceivedMessageSize = int.MaxValue;
28 bind.MaxBufferPoolSize = int.MaxValue;
29 bind.ReaderQuotas.MaxArrayLength = int.MaxValue;
30 bind.ReaderQuotas.MaxBytesPerRead = int.MaxValue;
31 bind.ReaderQuotas.MaxDepth = int.MaxValue;
32 bind.ReaderQuotas.MaxNameTableCharCount = int.MaxValue;
33 bind.ReaderQuotas.MaxStringContentLength = int.MaxValue;
34
35 bind.SendTimeout = new TimeSpan(0,5,60);
36 EndpointAddress address = new EndpointAddress(uri);
37
38 ChannelFactory<T> channelFactory = new ChannelFactory<T>(bind);
39 return CreateService(bind, address);
40 }
41
42 /// <summary>
43 /// 采用通道工厂的方式生成客户端服务对象实例
44 /// </summary>
45 /// <param name="bind"></param>
46 /// <param name="address"></param>
47 public ZhiYuan.ServiceContract.Member.ILoginService CreateLoginService()
48 {
49 return WCFClient<ZhiYuan.ServiceContract.Member.ILoginService>.CreateService("http://localhost:1785/Member/LoginService.svc");
50
51 }
52
53
54 public ZhiYuan.ServiceContract.Member.IMemberService CreateMemberService()
55 {
56
57 return WCFClient<ZhiYuan.ServiceContract.Member.IMemberService>.CreateService("http://localhost:1785/Member/MemberService.svc");
58
59
60 }
61
62 }
63 }
知道WCF的地址用工厂通道方式快速调用WCF的更多相关文章
- 记录:Web无引用无配置方式动态调用WCF服务
这几年一直用WebApi较多,最近项目中有个需求比较适合使用WCF,以前也用过JQuery直接调用Wcf的,但是说实话真的忘了… 所以这次解决完还是花几分钟记录一下 WCF服务端:宿主在现有Win服务 ...
- WCF入门教程(四)通过Host代码方式来承载服务 一个WCF使用TCP协议进行通协的例子 jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding System.ServiceModel.WSHttpBinding协议 学习WCF笔记之二 无废话WCF入门教程一[什么是WCF]
WCF入门教程(四)通过Host代码方式来承载服务 Posted on 2014-05-15 13:03 停留的风 阅读(7681) 评论(0) 编辑 收藏 WCF入门教程(四)通过Host代码方式来 ...
- WCF实例管理的三种方式
很多情况下,我们都需要控制wcf服务端对象的初始化方式,用来控制wcf实例在服务端的存活时间. Wcf框架提供了三种创建wcf实例的方式. WCF服务对象实例化基础 在普通的WCF请求和相应过程中,将 ...
- [转]学习 WCF (6)--学习调用WCF服务的各种方法
转自:http://www.cnblogs.com/gaoweipeng/archive/2009/07/26/1528263.html 作者这篇博文写得很全面. 根据不同的情况,我们可以用不同的方法 ...
- 在 Node.js 上调用 WCF Web 服务
摘要:有时我们需要在WCF中做一些复杂数据处理和逻辑判断等,这时候就需要在NodeJS中调用WCF服务获取数据,这篇文件介绍如何在Node中调用WCF服务获取数据. Node项目中调用WCF服务获取数 ...
- 调用WCF服务的几种方式
首先发布了一个名为PersonService的WCF服务.服务契约如下: [ServiceContract] public interface IPersonService { ...
- C#动态调用WCF接口,两种方式任你选。
写在前面 接触WCF还是它在最初诞生之处,一个分布式应用的巨作. 从开始接触到现在断断续续,真正使用的项目少之又少,更谈不上深入WCF内部实现机制和原理去研究,最近自己做一个项目时用到了WCF. 从这 ...
- 创建一个简单的WCF程序2——手动开启/关闭WCF服务与动态调用WCF地址
一.创建WCF服务器 1.创建WCF服务器的窗体应用程序 打开VS2010,选择文件→新建→项目菜单项,在打开的新建项目对话框中,依次选择Visual C#→Windows→Windows窗体应用程序 ...
- wcf系列(一)--- 寄宿方式
一.自我寄宿(self-hosting) 1.wcf采用基于终结点(Endpoint)的通信手段:终结点由:地址(Address)+绑定(Binding)+契约(Contract)组成: Enpoi ...
随机推荐
- ansible debug模块学习笔记
- name: Print debug infomation eg hosts: test2 gather_facts: F tasks: - name: Command run line shell ...
- spring复习 -day1:Spring简介 、 Spring容器 、 Spring IOC
Spring创建对象方法 创建对象过程: 第一步:添加SpringIOC环境 (1)在WebRoot/WEB-INT/lib文件夹下,引入SpringIOC配置环境的jar包 如图: (2)在sr ...
- Hibernate查询_HQL_EJBQL_QBC_QBE
查询按功能强弱可以分为以下几种:Native SQL > HQL > EJBQL > QBC > QBE 1.Native SQLNative SQL为数据库系统本身的SQL, ...
- 联合主键用hibernate注解映射方式主要有三种:
将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode 第一.将该类注解为@Embeddable,最后在主类中(该类不包含联合主键 ...
- 监视在input框中按下回车(enter) js实现
function getKey(event) { if (event.keyCode == 13) { alert("我是回车键"); } } <input type=&qu ...
- 在VS中写js的同学注意了。。。。。。。。。。。。。。。。。。。
在vs中安装扩展jsdoc就可以实现这个功能
- 在express项目中使用formidable & multiparty实现文件上传
安装 formidable,multiparty 模块 npm install formidable,multiparty –save -d 表单上传 <form id="addFor ...
- consul读取key value
1.nuget 搜索consul安装 2. using (var client = new ConsulClient()) { var kvPair = client.KV.Get(key).Resu ...
- TestNG入门教程
阅读目录 TestNG介绍 在Eclipse中在线安装TestNG 在Eclipse中离线安装Testng TestNG最简单的测试 TestNG的基本注解 TestNG中如何执行测试 使用testt ...
- PHP-004
'URL_CASE_INSENSITIVE' => true,设置为true的时候表示URL地址不区分大小写,这个也是框架在部署模式下面的默认设置. URL模式 : URL_MODEL设置 ...