WCF服务,请求或增加绑定上的SendTimeout值

时间:2012-04-23 22:02:53

标签: wcf wcf-data-services wcf-binding wcf-client

我随机出现这个问题,我可以使用WCFServiceClient添加/删除/更新,然后我得到错误及其随机发生......

下面是我正在使用的客户端代码......

using(WCFServiceClient client = new WCFServiceClient ()) 
{ 
     //More codes here 
     Employee emp = new Employee()
     emp = client.GetEmployeeDataById(123); //<<<ERROR    
}

我将超时时间增加到两分钟但仍然相同:

<binding name="WSHttpBinding_IEmployeeService" maxReceivedMessageSize="200000" sendTimeout="00:02:00" >

//错误:

请求频道在00:00:59.9990000之后等待回复时超时。增加传递给Request的调用的超时值或增加Binding上的SendTimeout值。分配给此操作的时间可能是较长超时的一部分。

任何帮助?我见过很多帖子,但似乎没有任何修改或任何指导。

3 个答案:

答案 0 :(得分:1)

在阅读此链接后能够解决我的问题。

避免使用Statement语句的问题 http://msdn.microsoft.com/en-us/library/aa355056.aspx

C#“using”语句导致调用Dispose()。这与Close()相同,它可能在发生网络错误时抛出异常。因为对Dispose()的调用隐式发生在“using”块的右括号中,所以这个异常源可能会被编写代码和读取代码的人忽视。这代表了应用程序错误的潜在来源。

答案 1 :(得分:0)

您可以尝试显式绑定选择,以消除您可能正在选择默认(简化配置)绑定

的情况
new WCFServiceClient ("WSHttpBinding_IEmployeeService")

答案 2 :(得分:0)

我不知道你到那里的数据有多大,但是receiveTimeout呢?