长时间 运行 WCF 504 GATEWAY_TIMEOUT 错误

Long time running WCF 504 GATEWAY_TIMEOUT error

我正在 webHttpBinding 上开发 WCF Web 服务,客户端应用程序按需 (HTTP POST) 或通过调度程序 windows 服务(当前使用 Quartz.net)调用此 WCF Web 服务。

每次通话都会 运行 列出可能需要 10-30 分钟的任务。 1 分钟后我收到 504 Gateway_Timeout 错误。我已尝试增加 WCF 网络服务的限制,但仍然出现错误。

<webHttpBinding>
    <binding name="webHttpBindingWithJsonP"  closeTimeout="00:30:00" openTimeout="00:30:00" receiveTimeout="00:30:00" sendTimeout="00:30:00" maxReceivedMessageSize="50000000" maxBufferSize="50000000" maxBufferPoolSize="50000000" crossDomainScriptAccessEnabled="true"/>
  </webHttpBinding>


 <httpRuntime executionTimeout="1800" targetFramework="4.0"/>

无论出现什么错误,任务都会完成。我不确定当 Web 请求超时时 WCF 是否仍然 运行ning?如果一个任务需要更少的时间,例如半分钟,那么它 returns 有效结果。

我已经尝试使用所有 switchvalue 跟踪日志并使用 traceviewer 监视输出,没有发现错误。

我的问题是 WCF 服务应该设计为 webHttpBinding 服务,还是应该设计为其他类型?

您是否考虑过在初始通话中提供状态页面,然后让用户(反复)检查状态页面以验证任务是否完成?

这将确保没有任何超时,因为连接将是短暂的。