求教调用WCF超时问题的解决办法

 我来答
huanglenzhi
2016-11-13 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117525 获赞数:517229
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  在 Silverlight 端设置 SendTimeout 和 ReceiveTimeout 属性,经常在 Debug 时需要调试上好几分钟、或者放上几十分钟。
  可以在 ServiceReferences.ClientConfig 中配置,不过个人习惯使用后台代码,毕竟配置最灵活:

  BasicHttpBinding 在 Debug/ Release 时的代码配置
  C# code

  defaultBasicHttpBinding = new BasicHttpBinding(BasicHttpSecurityMode.None)
  {
  Name = "DefaultBasicHttpBinding",
  OpenTimeout = new TimeSpan(0, 1, 0),
  CloseTimeout = new TimeSpan(0, 1, 0),
  #if DEBUG
  SendTimeout = new TimeSpan(0, 18, 00),
  ReceiveTimeout = new TimeSpan(18, 18, 00),
  MaxBufferSize = int.MaxValue,
  MaxReceivedMessageSize = int.MaxValue
  #else
  SendTimeout = new TimeSpan(0, 8, 00),
  ReceiveTimeout = new TimeSpan(0, 18, 00),
  MaxBufferSize = int.MaxValue,
  MaxReceivedMessageSize = int.MaxValue
  #endif
  };

  CustomBinding
  C# code
 
  customBinding = new CustomBinding()
  {
  Name = "CustomBinding",
  OpenTimeout = new TimeSpan(0, 1, 0),
  CloseTimeout = new TimeSpan(0, 1, 0),
  
  #if DEBUG
  SendTimeout = new TimeSpan(0, 18, 00),
  ReceiveTimeout = new TimeSpan(18, 18, 00),
  #else
  SendTimeout = new TimeSpan(0, 8, 00),
  ReceiveTimeout = new TimeSpan(0, 18, 00),
  #endif
  };
  customBinding.Elements.Add(new System.ServiceModel.Channels.BinaryMessageEncodingBindingElement());
  customBinding.Elements.Add(new HttpTransportBindingElement()
  {
  MaxBufferSize = int.MaxValue, MaxReceivedMessageSize= int.MaxValue
  }
  );
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式