IO调用服务

1、使用using(每次自动释放)

  1. for (var i = ; i < ; i++)
  2. {
  3. var watch = new Stopwatch();
  4. watch.Start();
  5. using (var client = new StreamServiceClient())
  6. {
  7. var result = client.Upload(new StreamRequest
  8. {
  9. Bytes = data,
  10. FileExt = ext,
  11. Passport = ""
  12. });
  13. if (!string.IsNullOrEmpty(result.Msg))
  14. MessageBox.Show(result.Msg);
  15. }
  16. watch.Stop();
  17. this.richTextBox1.AppendText(string.Format("第{0}次:耗时:{1}\r\n\r\n", i, watch.ElapsedMilliseconds));
  18. }

耗时:

2、重用wcf通信通道

  1. for (var i = ; i < ; i++)
  2. {
  3. var watch = new Stopwatch();
  4. watch.Start();
  5. var client = new StreamServiceClient();
  6. {
  7. var result = client.Upload(new StreamRequest
  8. {
  9. Bytes = data,
  10. FileExt = ext,
  11. Passport = ""
  12. });
  13. if (!string.IsNullOrEmpty(result.Msg))
  14. MessageBox.Show(result.Msg);
  15. }
  16. watch.Stop();
  17. this.richTextBox1.AppendText(string.Format("第{0}次:耗时:{1}\r\n\r\n", i, watch.ElapsedMilliseconds));
  18. }

耗时:

3、自定义wcf通道

先创建一个channel,如下:

  1. /// <summary>
  2. /// IO服务通道
  3. /// by:jgl
  4. /// date:15-10-10
  5. /// </summary>
  6. public sealed class EmpIOChannelFacotry
  7. {
  8. private static readonly object LockObject = new object();
  9. private static StreamServiceClient client;
  10.  
  11. public static StreamServiceClient Channel
  12. {
  13. get
  14. {
  15. lock (LockObject)
  16. {
  17. var locaClient = client;
  18. if (locaClient != null && locaClient.State != CommunicationState.Faulted) return locaClient;
  19. client = new StreamServiceClient();
  20. return client;
  21. }
  22. }
  23. set
  24. {
  25. lock (LockObject)
  26. {
  27. if (client == null) return;
  28. if (client.State != CommunicationState.Opened)
  29. client.Abort();
  30. client.Close();
  31. client = value;
  32. }
  33. }
  34. }
  35. }

耗时:

此文章属于个人记录,我是wcf的菜鸟,希望大家多多批评与指点。

请问各位还有其他办法能够提供wcf客户端调用的办法吗?

客户端调用wcf服务,如何提高调用性能的更多相关文章

  1. 学习之路十四:客户端调用WCF服务的几种方法小议

    最近项目中接触了一点WCF的知识,也就是怎么调用WCF服务,上网查了一些资料,很快就搞出来,可是不符合头的要求,主要有以下几个方面: ①WCF的地址会变动,地址虽变,但是里面的逻辑不变! ②不要引用W ...

  2. Silverlight客户端调用WCF服务难题解疑

    一:解决办法 Silverlight客户端调用WCF服务在实际使用中经常会出现的问题就是无法直接应用类文件和配置文件.微软针对这一情况已经给出了解决办法.WCF开发框架可以帮助我们实现可靠性较高的跨平 ...

  3. WCF技术剖析之十:调用WCF服务的客户端应该如何进行异常处理

    原文:WCF技术剖析之十:调用WCF服务的客户端应该如何进行异常处理 在前面一片文章(服务代理不能得到及时关闭会有什么后果?)中,我们谈到及时关闭服务代理(Service Proxy)在一个高并发环境 ...

  4. wcf第三方客户端与wcf服务之间调用入门

    Wcf服务与我们的客户端如何建立联系的呢.本文简单记录一下 1.创建我们的wcf服务程序. 第一个wcf服务库是创建我们的wcf库,运行时会单独来托管我们的程序,而非托管在iis下. 第二个wcf服务 ...

  5. 完全使用接口方式调用WCF 服务

    客户端调用WCF服务可以通过添加服务引用的方式添加,这种方式使用起来比较简单,适合小项目使用.服务端与服务端的耦合较深,而且添加服务引用的方式生成一大堆臃肿的文件.本例探讨一种使用接口的方式使用WCF ...

  6. 实现jquery.ajax及原生的XMLHttpRequest调用WCF服务的方法

    废话不多说,直接讲解实现步骤 一.首先我们需定义支持WEB HTTP方法调用的WCF服务契约及实现服务契约类(重点关注各attribute),代码如下: //IAddService.cs namesp ...

  7. .NET Core 调用WCF 服务

    .NET Core 和ASP.NET Core 已经可以调用WCF 服务. 环境要求: VS2015 Update 2 +VS2015 Tooling + .NET Core SDK 下载地址: ht ...

  8. [转]学习 WCF (6)--学习调用WCF服务的各种方法

    转自:http://www.cnblogs.com/gaoweipeng/archive/2009/07/26/1528263.html 作者这篇博文写得很全面. 根据不同的情况,我们可以用不同的方法 ...

  9. WPF异步调用WCF服务

    wpf调用wcf时,第一次访问总耗时到达几秒,影响界面的用户体验,因此在wpf加载界面和加载数据时采用异步加载,即异步访问wcf服务, 由于是否采用异步加载和服务端无关,仅仅由客户端自己根据需要来选择 ...

  10. WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载]

    原文:WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载] 我们有两种典型的WCF调用方式:通过SvcUtil.exe(或者添加Web引用)导入发布的服务元数据生成服务代理相关的代码 ...

随机推荐

  1. appium+pytest+allure+jenkins 如何实现多台手机连接

    使用appium可以实现app自动化测试,我们之前是连接一台手机去运行,如何同时连接多台手机呢?很多人可能想到的是多线程(threading).今天分享一种比多线程更简单的方法,虽然不是多台手机同时运 ...

  2. IOS-网络(ASIHTTPRequest的使用简介)

    使用iOS SDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API,用Objective ...

  3. 数据库使用B+树原理

    转载:http://zhuanlan.51cto.com/art/201808/582078.htm https://www.cnblogs.com/vincently/p/4526560.html( ...

  4. powerdesigner安装图解

  5. MIPS 汇编指令学习

    MIPS 寄存器 MIPS comes with 32 general purpose registers named $0. . . $31Registers also have symbolic ...

  6. LocalStorage漏洞分析

    之前LocalStorage爆出过一个漏洞,使用Chrome打开这个网站:http://filldisk.com,会将磁盘空间给撑爆,而且Chrome还会Crash.除了FireFox之外,其他浏览器 ...

  7. 【转】MongoDB 3.0 正式版本即将发布,强力推荐

    MongoDB 今天宣布3.0 正式版本即将发布.这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统. MongoDB 3.0 在性能和伸缩性方面都有 ...

  8. js在一定时间内跳转页面及各种页面刷新

    1.js 代码: <SCRIPT LANGUAGE="JavaScript"> var time = 5; //时间,秒 var timelong = 0; funct ...

  9. .net 应用程序 发布上线注意事项

    生产环境发布时,对应的程序目录必须新建当日rar压缩包进行备份生产环境数据库发布时,必须创建存储过程的副本sql用于回滚,操作方式:F7调出对象资源管理器详细信息->选中所有存储过程->编 ...

  10. SM2的非对称加解密java工具类

    maven依赖 <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov- ...