3

我随机遇到这个问题,我能够使用 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 值。分配给此操作的时间可能是较长超时的一部分。

有什么帮助吗?我看过很多帖子,但似乎没有任何修复或指导。

4

3 回答 3

1

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

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

C#“使用”语句导致调用 Dispose()。这和Close()一样,发生网络错误时可能会抛出异常。因为对 Dispose() 的调用隐式发生在“using”块的右大括号处,所以编写代码和阅读代码的人都可能不会注意到这个异常源。这代表了应用程序错误的潜在来源。

于 2012-04-25T15:33:26.147 回答
0

您可以尝试显式绑定选择以消除您可能会选择默认(简化配置)绑定的情况

new WCFServiceClient ("WSHttpBinding_IEmployeeService")
于 2012-04-23T23:40:19.493 回答
0

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

于 2012-04-25T15:42:41.020 回答