我是否需要Azure存储帐户来运行WebJob?

时间:2017-07-12 15:07:00

标签: azure azure-webjobs

所以我在使用Azure方面相当新,而且有些事情我无法完全理解。其中一个是Azure存储帐户。

我的网络作业因以下错误而停止:#34;未处理的例外:System.InvalidOperationException:' [account_name] '的帐户凭据是不正确的。"然而,理解错误不是问题,至少是我的想法。问题在于理解为什么我需要一个Azure存储帐户来克服它。

请仔细阅读,因为我试图引导您完成目前为止所采取的步骤。希望你真正的问题会变得更清楚。

在我在Azure上部署WebJob的努力中,到目前为止我们创建了以下资源:

  • 应用服务计划
  • App Service
  • SQL server
  • SQL数据库

我使用以下代码段来阻止我的网络作业退出:

JobHostConfiguration config = new JobHostConfiguration();
config.DashboardConnectionString = null;
new JobHost(config).RunAndBlock();

根据我对其他来源的理解,Dashboard连接字符串是可选的,但AzureWebJobsStorage连接字符串是必需的。

我尝试使用找到的here配置在门户网站中设置所需的连接字符串。

DefaultEndpointsProtocol=[http|https];AccountName=myAccountName;AccountKey=myAccountKey

进一步展望我发现this answer清楚地说明了我将获得所需值的位置,即/我缺少的Azure存储帐户。

现在针对实际问题:当我看似拥有运行WebJob所需的所有资源时,为什么还需要Azure存储帐户?它有什么作用?这是一个计费的事情,因为我认为我们已经在App Service Plan中定义了它。我已尝试在here上阅读Azure存储帐户,但我需要更多帮助来了解它与所有内容的关系。

3 个答案:

答案 0 :(得分:2)

来自文档:

Azure存储帐户提供用于在云中存储队列和blob数据的资源。

WebJobs SDK也使用它来存储仪表板的日志记录数据。

Refer to the getting started guide and documentation for further information

答案 1 :(得分:2)

您的问题的答案为“否”,在尝试设置和运行Azure Web作业时,并非必须使用Azure存储。

如果您使用的是JobHostJobHostConfiguration,则存储帐户确实存在依赖性。

下面是示例代码段。

class Program
{
    static void Main()
    {
        Functions.ExecuteTask();
    }

}

public class Functions
{
    [NoAutomaticTrigger]
    public static void ExecuteTask()
    {
        // Execute your task here 
    }
}

答案 2 :(得分:0)

答案是否定的,你没有。您可以运行WebJob而不必绑定到Azure存储帐户。与Murray提到的一样,您的WebJob仪表板确实使用存储帐户来记录数据,但这完全是独立的。