我在 Azure 上托管一个应用程序作为一个连续的 WebJob。该程序经常(大约每秒一次)通过创建 DocumentClient 实例来调用 CosmosDB 数据库(我使用 DocumentClient 函数 CreateDocumentQuery 和生成的 IEnumerable 上的 Linq Query 从我的数据库中检索对象)。当我在本地运行程序时,它的行为符合预期,没有任何问题。当我将程序发布为 Azure WebJob 并运行它时,我的日志表明正在抛出 HttpRequestException 和消息:
发送请求时出错。
此外,我得到以下堆栈跟踪:
在 System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) 在 System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification) 在 System.Threading.Tasks.Task1.get_Result() 在 Microsoft.Azure.Documents.Linq.DocumentQuery1 .d__31.MoveNext() at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source) at ...我的调用代码...
只有在我频繁使用 DocumentClient 并且仅在 WebJob 方面才会出现此问题。在本地运行等效负载不会影响我的应用程序。为什么我的 WebJob 中会出现此异常?值得注意的是,S1 和 P1V2 应用服务层都会出现此问题。