我有一个IIS托管的WCF REST 4.0服务。当我执行一个需要一个多小时才能运行的休息操作时,它永远不会向客户端返回响应。相反,我在4小时后收到以下异常:
“在03:59:59.9979998之后等待回复时请求通道超时。增加传递给Request的调用的超时值或增加Binding上的SendTimeout值。分配给此操作的时间可能已成为较长超时的一部分“
我已将客户端和服务器上的WebHttpBinding SendTimeout和ReceiveTimeout设置为4小时。我还设置了asp.net httpRuntime executionTimeout =“7200”。
我知道服务操作在大多数时间内完成的时间超过1小时(应用程序日志记录)。如果碰巧完成的时间超过一小时,则响应将完全恢复。
答案 0 :(得分:0)
我认为您正在使用请求 - 回复方式来调用服务,并且您的客户端等待1小时才能获得回复,为什么不使用回调操作以便服务可以在完成后向客户端发送回复并且客户端赢了需要等待吗?