问题在于每天安排一个长时间运行的azure webjob。每次运行需要2-4个小时进行数据分析。唯一的依赖是使用Azure SQL数据库通过EF和Azure存储,只需在App.Config上设置AzureWebJobsDashboard和AzureWebJobsStorage连接,使用webjob SDK在VS上进行标准设置。大部分时间的网络工作都与EF的SaveChanges()一起使用。 我也做了大量的日志记录来监视aprox 3000行控制台输出的进度。 Web应用程序配置为Allways ON,并且WEBJOBS_IDLE_TIMEOUT设置为非常高的数字。由于Azure存储超时导致长时间运行webjob失败
以下是错误的日志:
[二○一六年十月二十○日七时48分17秒> 492c46:ERR]未处理的异常:Microsoft.WindowsAzure.Storage.StorageException:客户端无法完成在指定的时间内运行。 ---> System.TimeoutException:客户端无法在指定的超时时间内完成操作。
[2016年10月20日7时48分17秒> 492c46:ERR] ---内部异常堆栈跟踪的结尾---
[2016年10月20日7时48分17秒> 492c46:在Microsoft.WindowsAzure.Storage.Core.Util.StorageAsyncResult`1.End()
[10/20/2016 07:48:17> 492c46:ERR] .EndUploadText(IAsyncResult asyncResult)
[10/20/2016 07:48:17> 492c46:ERR] at Microsoft.WindowsAzure.Storage.Core.Util.AsyncExtensions。 <> c__DisplayClass4.b__3(IAsyncResult ar)
感谢您指出,我已将WEBJOBS_IDLE_TIMEOUT配置为大量数据,并且我的实例始终处于开启状态。我将通过编辑上面的问题来添加这两点。关于你的第三个建议,我的控制台输出是大约3000行,但我生成每个至少一秒钟。 – donquijote
你看过https://github.com/Azure/azure-webjobs-sdk/issues/755吗?尝试降级您的Azure存储SDK。 – iikkoo