【发布时间】:2017-01-06 20:06:21
【问题描述】:
我遇到了类似于this question 的问题,因为函数列表显示重复项和感叹号。与该问题不同的是,“关于”页面显示了一长串索引器故障,所有故障都带有消息“远程服务器返回错误:(403) 已禁止”。带有显示错误源自 Azure 存储客户端的堆栈跟踪。
问题是,网络作业本身可以很好地连接到存储帐户。另外,如果我将 AzureWebJobsDashboard 设置中的连接字符串复制到 Azure 存储资源管理器中,它会很好地连接到帐户。
我突然想到,这可能与我使用的是 SDK 的 beta 版本有关,并且它可能与 Azure 正在运行的仪表板版本不兼容,我无法控制。
很遗憾,我无法降级到稳定版本,因为我们使用的是基于 beta SDK 的NotificationHubs extension。
有没有人遇到过同样的问题并提出了不涉及放弃通知中心支持的解决方案?
更新
我突然想到,除了升级 WebJobs SDK 版本外,我还从解决方案中的一个 WebJob 项目变成了 2 个 WebJobs。问题可能与此有关吗?我已将这两个作业放在 WebApi 项目属性下的 webjobs-list.json 文件中:
{
"$schema": "http://schemastore.org/schemas/json/webjobs-list.json",
"WebJobs": [
{
"filePath": "../import/TeamString.Service.Import.csproj"
},
{
"filePath": "../push-notifier/TeamString.Service.PushNotifier.csproj"
}
]
}
更新 2
首先,如前所述,我在同一个应用服务 webapp 中部署了 2 个连续的 WebJobs:
- Importer - 这个只依赖于基本的
Microsoft.Azure.WebJobsNuGet 包。没有扩展,也没有服务总线。 - Push-Notifier - 这个通过 WebJobs 使用 ServiceBus 和 Notification Hubs,所以它依赖于
Microsoft.Azure.WebJobs.ServiceBus和Microsoft.Azure.WebJobs.Extensions.NotificationHubs。
我现在有时间进行一些额外的实验:
- 将 WebJob NuGet 包更新到最新的测试版。这并没有修复常量索引器错误。现在在以下版本上运行:
- WindowsAzure.Storage:7.2.1
- Microsoft.Web.WebJobs.Publish:1.0.12
- Microsoft.Azure.WebJobs.Core:2.0.0-beta2-10491
- Microsoft.Azure.WebJobs:2.0.0-beta2-10491
- Microsoft.Azure.WebJobs.ServiceBus:2.0.0-beta2-10491
- Microsoft.Azure.WebJobs.Extensions:2.0.0-beta2
- Microsoft.Azure.WebJobs.Script.Extensibility:1.0.0-beta2-10690
- Microsoft.Azure.WebJobs.Extensions.NotificationHubs:1.0.0-beta2
- 通过 Azure 门户删除导入程序 WebJob 并停止推送通知程序。然后删除存储帐户中的所有 WebJob 日志对象。结果:索引器开始发送垃圾邮件 404 Not Found 错误而不是 403 Forbidden。
- 再次启动推送通知器并为其完成一些工作。结果:索引器返回垃圾邮件 403 Forbidden。
- 重新部署的解决方案让进口商回来。然后通过门户删除推送通知程序 WebJob 并停止导入程序。再次删除了所有 WebJob 日志对象。结果:没有索引器错误!?!
- 启动导入器并为其完成一些工作。结果:仍然没有索引器错误!
因此,触发此错误的肯定是推送通知程序 WebJob。
【问题讨论】:
标签: c# azure-webjobssdk