我有一个 IIS 托管 WCF REST 4.0 服务。当我执行一个需要一个多小时才能运行的休息操作时,它永远不会向客户端返回响应。相反,我在 4 小时后收到以下异常:
“请求通道在 03:59:59.9979998 之后等待回复时超时。增加传递给 Request 调用的超时值或增加 Binding 上的 SendTimeout 值。分配给此操作的时间可能是更长的超时时间”
我已将客户端和服务器上的 WebHttpBinding SendTimeout 和 ReceiveTimeout 设置为 4 小时。我还设置了 asp.net httpRuntime executionTimeout="7200"。
我知道事实上服务操作在 1 多小时内完成大部分时间(应用程序日志记录)。如果它恰好完成快于一个小时,则响应将完美返回。