WebJobs仪表板已破解为2.0.0 beta C#SDK

时间:2016-12-14 15:29:17

标签: c# azure-webjobssdk

我遇到类似于this question的问题,因为功能列表显示重复项和感叹号。与该问题不同的是,“关于”页面显示了很长的索引器失败列表,所有这些都带有消息"远程服务器返回错误:(403)禁止。"使用堆栈跟踪显示错误源自Azure存储客户端。

问题是,webjob本身设法连接到存储帐户就好了。此外,如果我将连接字符串从AzureWebJobsDashboard设置复制到Azure存储资源管理器,它就可以正常连接到该帐户。

我想到这可能与我使用SDK的测试版本并且可能与Azure正在运行的仪表板版本不兼容这一事实有关,而我无法控制。

很遗憾,我无法降级到稳定版本,因为我们使用的是基于测试版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

首先,如前所述,我在同一个App Service webapp中部署了2个连续的WebJobs:

  1. 导入程序 - 这个只取决于基本的Microsoft.Azure.WebJobs NuGet包。没有扩展,没有服务总线。
  2. 推送通知程序 - 此通过WebJobs使用ServiceBus和通知中心,因此它取决于Microsoft.Azure.WebJobs.ServiceBusMicrosoft.Azure.WebJobs.Extensions.NotificationHubs
  3. 我现在有时间进行一些额外的实验:

    1. 将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
    2. 通过Azure门户删除了导入器WebJob并停止了推送通知程序。然后删除存储帐户中的所有WebJob日志对象。结果:索引器开始发送404 Not Found错误而不是403 Forbidden。
    3. 再次启动推送通知程序,并为此做了一些工作。结果:索引器回到垃圾邮件403 Forbidden。
    4. 重新部署解决方案以取回导入程序。然后通过门户删除了push-notifier WebJob并停止了导入程序。再次删除所有WebJob日志对象。结果:没有索引器错误!?!
    5. 开始进口商并给它做了一些工作。结果:仍然没有索引器错误!
    6. 所以它肯定会引发推送通知器WebJob触发此错误。

1 个答案:

答案 0 :(得分:1)

  

我想到,这可能与我使用SDK的测试版并且可能与Azure正在运行的仪表板版本不兼容这一事实有关

我使用WebJobs模板创建一个新的Web作业项目并安装Microsoft.Azure.WebJobs.Extensions v2.0.0-beta2,我发现如果我提供的AzureWebJobsDashboard和AzureWebJobsStorage连接字符串具有正确的值,则Web作业可以运行细

packages.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.Azure.KeyVault.Core" version="1.0.0" targetFramework="net45" />
  <package id="Microsoft.Azure.WebJobs" version="2.0.0-beta2" targetFramework="net45" />
  <package id="Microsoft.Azure.WebJobs.Core" version="2.0.0-beta2" targetFramework="net45" />
  <package id="Microsoft.Azure.WebJobs.Extensions" version="2.0.0-beta2" targetFramework="net45" />
  <package id="Microsoft.Azure.WebJobs.Script.Extensibility" version="1.0.0-beta2" targetFramework="net45" />
  <package id="Microsoft.Data.Edm" version="5.6.4" targetFramework="net45" />
  <package id="Microsoft.Data.OData" version="5.6.4" targetFramework="net45" />
  <package id="Microsoft.Data.Services.Client" version="5.6.4" targetFramework="net45" />
  <package id="Microsoft.Tpl.Dataflow" version="4.5.24" targetFramework="net45" />
  <package id="Microsoft.Web.WebJobs.Publish" version="1.0.12" targetFramework="net45" />
  <package id="Microsoft.WindowsAzure.ConfigurationManager" version="2.0.3" targetFramework="net45" />
  <package id="ncrontab" version="3.2.0" targetFramework="net45" />
  <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net45" />
  <package id="System.Spatial" version="5.6.4" targetFramework="net45" />
  <package id="WindowsAzure.Storage" version="7.2.1" targetFramework="net45" />
</packages>

请确保使用以下格式值DefaultEndpointsProtocol=https;AccountName=NAME;AccountKey=KEY设置名为 AzureWebJobsDashboard 的连接字符串。请检查您是否在Azure门户中的Application settings blade下为AzureWebJobsDashboard指定了另一个值(它可以覆盖现有设置)。

此外,请尝试创建一个新的Web作业项目并安装Microsoft.Azure.WebJobs.Extensions v2.0.0-beta2,而不使用NotificationHubs扩展,以检查NotificationHubs扩展是否会导致该问题。