所以我在使用Azure方面相当新,而且有些事情我无法完全理解。其中一个是Azure存储帐户。
我的网络作业因以下错误而停止:#34;未处理的例外:System.InvalidOperationException:' [account_name] '的帐户凭据是不正确的。"然而,理解错误不是问题,至少是我的想法。问题在于理解为什么我需要一个Azure存储帐户来克服它。
请仔细阅读,因为我试图引导您完成目前为止所采取的步骤。希望你真正的问题会变得更清楚。
在我在Azure上部署WebJob的努力中,到目前为止我们创建了以下资源:
我使用以下代码段来阻止我的网络作业退出:
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存储帐户,但我需要更多帮助来了解它与所有内容的关系。
答案 0 :(得分:2)
来自文档:
Azure存储帐户提供用于在云中存储队列和blob数据的资源。
WebJobs SDK也使用它来存储仪表板的日志记录数据。
Refer to the getting started guide and documentation for further information
答案 1 :(得分:2)
您的问题的答案为“否”,在尝试设置和运行Azure Web作业时,并非必须使用Azure存储。
如果您使用的是JobHost
或JobHostConfiguration
,则存储帐户确实存在依赖性。
下面是示例代码段。
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仪表板确实使用存储帐户来记录数据,但这完全是独立的。