【发布时间】:2014-12-15 02:39:18
【问题描述】:
我的 azure webjob 似乎在没有抛出异常的情况下终止,我迷路了。
我的网络作业是按需(或计划)运行的,并且依赖于我的网站 DLL(和 MVC 应用程序)。它调用它来完成大部分工作,其中包括使用实体框架数据库和对其他几个站点进行 REST 调用。大多数工作都是异步完成的。用于完成这项工作的大部分代码也可以毫无问题地从网站的其他部分调用,而且毫无疑问,Web 作业在本地运行时可以完美运行。
Web 作业终止并且似乎没有抛出异常,而且似乎无法调试不属于连续运行类型的 Web (?)。因此,我的调试主要是 Console.WriteLine 种类。由于这个原因和异步性,我无法确定它崩溃的确切位置 - 我认为它是在访问数据库时,但在处理它之后,数据库访问开始工作......呃。我的下一个最佳猜测是它在等待或其他异步管道期间死亡。但是,它确实会在两个 try/catch 块内崩溃,这些块具有将结果记录到 redis 和 azure 存储的 finally。这些都不会发生。我无法弄清楚或想象这个进程是如何在没有遇到任何异常处理程序的情况下崩溃的......?
有人在使用 azure webjob 时遇到过这个问题吗?知道我应该寻找什么或调试此问题的任何提示吗?
谢谢!
【问题讨论】:
-
你在使用
async void吗? -
你能分享一些代码吗?
-
我从网络作业过程中调用的方法的签名是:public async Task GenerateFeed(bool dryRun = false)