长时间运行WCF 504 GATEWAY_TIMEOUT错误



我正在webHttpBinding上开发一个WCF web服务,客户端应用程序按需(HTTPPOST)或通过调度程序窗口服务(当前使用Quartz.net)调用此WCF web服务。

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

<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是否仍在运行?如果任务需要较少的时间,例如半分钟,则返回有效的结果。

我尝试过使用所有switchvalue的跟踪日志,并使用traceviewer来监控输出,没有发现错误。

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

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

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

相关内容

  • 没有找到相关文章

最新更新