c# - AzureWebjobSDK 中的 StorageConnectionString 是否需要访问整个存储帐户?

标签 c# azure azure-webjobssdk

我尝试使用 Azure WebJobs SDK 在队列上发布消息时触发函数。

当使用存储帐户 key 将 StorageConnectionString 设置为连接字符串时,这可以正常工作。

我想使用共享访问 token (SAS),它可以访问 StorageConnectionString 中的该队列(并且只能访问该队列),但出现错误:

Message=Failed to validate Microsoft Azure WebJobs SDK Storage connection string. The Microsoft Azure Storage account connection string is not formatted correctly. Please visit http://msdn.microsoft.com/en-us/library/windowsazure/ee758697.aspx for details about configuring Microsoft Azure Storage connection strings.

还有:

   Message=The account credentials for '' are incorrect.
   Source=Microsoft.Azure.WebJobs.Host
   StackTrace:
        at Microsoft.Azure.WebJobs.Host.Executors.DefaultStorageCredentialsValidator.<ValidateCredentialsAsyncCore>d__4.MoveNext()

我使用的连接字符串的格式如下: BlobEndpoint= https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccoount.queue.core.windows.net/queuename;SharedAccessSignature=token

StorageConnectionString 是否有可能需要访问整个存储帐户?如果是这样,你知道我能做什么吗?

最佳答案

查看WebjobSDK代码:https://github.com/Azure/azure-webjobs-sdk/tree/dev/src看起来您面临的异常是由存储帐户解析器引发的。看代码,解析如下:

    public static StorageAccountParseResult TryParseAccount(string connectionString, out CloudStorageAccount account)
    {
        if (String.IsNullOrEmpty(connectionString))
        {
            account = null;
            return StorageAccountParseResult.MissingOrEmptyConnectionStringError;
        }

        CloudStorageAccount possibleAccount;
        if (!CloudStorageAccount.TryParse(connectionString, out possibleAccount))
        {
            account = null;
            return StorageAccountParseResult.MalformedConnectionStringError;
        }

        account = possibleAccount;
        return StorageAccountParseResult.Success;
    }

我检查了您使用 CloudStorageAccount 发送的格式,它似乎通过了。请注意,blob 端点后面有一个不必要的“/”,也许您丢失了一些文本,这导致解析失败。

关于c# - AzureWebjobSDK 中的 StorageConnectionString 是否需要访问整个存储帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41322863/

相关文章:

c# - 如何将字体颜色添加到 .net 控制台应用程序?

c# - 当我使用 void 时,内存看到的是什么数据类型?

c# - 将配置添加到 Application Insights

azure - 如何防止Azure Web作业同时多次处理同一消息

azure - webjobs 使用 IBinder 删除 blob

c# - 您必须添加对程序集的引用…而无需web.config文件

c# - 等效于 C# 的 C 代码,用于安装证书

javascript - 从 JavaScript 下载文件

azure - 如何关闭动态架构支持?

c# - Azure Webjobs ServiceBusTrigger - 达到 MaxDeliveryCount 时执行不同的功能