Azure WebJob存储异常

时间:2016-09-13 11:45:01

标签: azure azure-webjobs azure-webjobssdk azure-storage-queues webjob

运行连续的webjob时出现以下错误。

未处理的类型' Microsoft.WindowsAzure.Storage.StorageException'发生在Microsoft.Azure.WebJobs.Host.dll

其他信息。客户端无法在指定的超时时间内完成操作。

我的webjob由Azure存储队列触发。当一条消息到达队列时,webjob就会正常运行并运行大约8-10分钟,之后它就会停止运行。此时它再次开始处理该消息,webjob再次运行8-10分钟。这个循环一直持续到我手动停止webjob。

我设法通过远程调试webjob来获得上述错误。我在8-10分钟后在visual studio中弹出一个弹出窗口 - StorageException未处理。

webjob和Azure Queue / Blob存储之间是否存在默认超时?

真的坚持这个,所以任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

据我所知,以下设置可能是可能的原因:

  • WEBJOBS_IDLE_TIMEOUT - 以秒为单位的时间,如果它处于空闲状态,我们将中止正在运行的触发作业的进程,没有cpu时间或输出。默认值为2分钟。
  • SCM_COMMAND_IDLE_TIMEOUT - 默认情况下,当您的构建过程启动某个命令时,允许它运行最多60秒而不产生任何输出。

根据您的描述,请尝试为您的WebJob增加“SCM_COMMAND_IDLE_TIMEOUT”和“WEBJOBS_IDLE_TIMEOUT”设置,并确定它是否可以在您身边和Azure端工作。

您可以在WebJob项目的app.config文件的appSettings部分添加以下设置。

<appSettings>
    <add key="SCM_COMMAND_IDLE_TIMEOUT" value="3600" /> <!--1 hour-->
    <add key="WEBJOBS_IDLE_TIMEOUT" value="3600" /> <!--1 hour-->
</appSettings>

或者

您可以登录Azure Portal,选择托管WebJob的Web应用程序,单击“设置”&gt;应用程序设置,在应用程序设置部分添加如上所述的设置。