【问题标题】:Microsoft.WindowsAzure.Storage.StorageException: The remote server returned an error: (403)Microsoft.WindowsAzure.Storage.StorageException:远程服务器返回错误:(403)
【发布时间】:2017-12-19 12:31:39
【问题描述】:

在新发布时,这是最初的错误:

System.ApplicationException:跟踪侦听器 AzureBlobTraceListener 被禁用。 ---> System.InvalidOperationException:SAS URL 未指定云存储帐户。使用环境 变量 'DIAGNOSTICS_AZUREBLOBCONTAINERSASURL' 来定义它。at Microsoft.WindowsAzure.WebSites.Diagnostics.AzureBlobTraceLi‌​sener.RefreshConfig‌​()

然后我将DIAGNOSTICS_AZUREBLOBCONTAINERSASURL 添加到应用程序设置中,并将其值设置为 生成的 Blob 服务 SAS URL。在这我得到一个新的错误:

System.ApplicationException:跟踪侦听器 AzureBlobTraceListener 被禁用。 ---> System.ArgumentException:缺少强制性 有效共享访问签名的参数 Microsoft.WindowsAzure.Storage.Core.Auth.SharedAccessSignatureHelper.ParseQuery(IDictionary2 queryParameters, Boolean mandatorySignedResource) at Microsoft.WindowsAzure.Storage.Core.Util.NavigationHelper.ParseBlobQueryAndVerify(Uri address, StorageCredentials& parsedCredentials, Nullable1& 已解析快照)在 Microsoft.WindowsAzure.Storage.Core.Util.NavigationHelper.ParseBlobQueryAndVerify(StorageUri 地址,StorageCredentials& parsedCredentials,Nullable`1& 已解析快照)在 Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer.ParseQueryAndVerify(StorageUri 地址,StorageCredentials 凭据)在 Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer..ctor(StorageUri containerAddress、StorageCredentials 凭据)在 Microsoft.WindowsAzure.WebSites.Diagnostics.AzureBlobTraceListener.RefreshConfig()

然后我将sr=b 添加到“DIAGNOSTICS_AZUREBLOBCONTAINERSASURL”,导致以下错误:

Microsoft.WindowsAzure.Storage.StorageException:远程服务器 返回错误:(403)禁止。 ---> System.Net.WebException: 远程服务器返回错误:(403)禁止。在 System.Net.HttpWebRequest.GetResponse() 在 Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand1 cmd, IRetryPolicy policy, OperationContext operationContext) --- End of inner exception stack trace --- at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand1 cmd, IRetryPolicy 策略, OperationContext operationContext) 在 Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.DownloadBlockList(BlockListingFilter blockListingFilter, AccessCondition accessCondition, BlobRequestOptions 选项,OperationContext operationContext)在 Microsoft.WindowsAzure.WebSites.Diagnostics.AzureBlobTraceListener.AppendStreamToBlob(流 流)在 Microsoft.WindowsAzure.WebSites.Diagnostics.AzureBlobTraceListener.ConsumeBuffer() 请求信息 RequestID:5225782d-0001-0175-6d94-fc82dd000000 请求日期:2017 年 7 月 14 日星期五 11:33:16 GMT 状态消息:服务器失败 对请求进行身份验证。确保 Authorization 的值 标头正确形成,包括签名。 错误代码:身份验证失败

用于在应用设置中声明 AzureWebJobsDashboard 和 AzureWebJobsStorage 的连接字符串: enter image description here

【问题讨论】:

  • 欢迎来到 StackOverflow。请以更好的格式编辑您的问题,并提供更多问题的上下文,否则人们无法仅通过异常堆栈跟踪来帮助您。
  • 添加了一些描述谢谢
  • 根据您的描述,我们仍然找不到您收到403错误的原因。你能告诉我们你做了什么吗?是否在 azure Web 应用程序门户中启用诊断日志或在您的应用程序代码中运行存储 SDK?
  • 在新发布时,这是初始错误:System.ApplicationException:跟踪侦听器 AzureBlobTraceListener 已禁用。 ---> System.InvalidOperationException:未指定云存储帐户的 SAS URL。使用环境变量 'DIAGNOSTICS_AZUREBLOBCONTAINERSASURL' 来定义它。在 Microsoft.WindowsAzure.WebSites.Diagnostics.AzureBlobTraceListener.RefreshConfig()
  • @BrandoZhang-MSFT 我在应用程序设置中添加了 DIAGNOSTICS_AZUREBLOBCONTAINERSASURL,将其值设置为生成的 Blob 服务 SAS URL。

标签: azure azure-storage


【解决方案1】:

根据您的描述,我猜您遇到错误的原因是您的 SAS 令牌没有足够的权限来对 blob 进行 CRUD。

SAS 令牌必须是 Blob 容器 SAS 令牌,而不是 Blob SAS 令牌。

此外,如果您设置 azure Web 应用的诊断日志应用程序日志功能,它将在您的 Web 应用的 appsetting 中自动生成一个 SAS 令牌。

更多细节,你可以参考下图:

在诊断日志中设置存储帐户。

然后它会自动设置appsetting:


更新:

无法验证 Microsoft Azure WebJobs SDK 仪表板连接字符串。 Microsoft Azure 存储帐户连接字符串的格式不正确。

如果您将网络作业上传到您的网络应用程序,网络作业需要两个应用设置。一个是 Dashboard 连接字符串,另一个是 AzureWebJobsStorage。

这两个设置都需要存储连接字符串而不是存储 SAS。

您可以找到如下图所示的存储连接字符串:

1.打开存储访问密钥功能。

2.复制连接字符串:

3.替换web app appsetting中的连接字符串。

【讨论】:

  • 同样的错误仍然存​​在,但我注意到 DateRequest 字段位于不同的时区,是否需要检查?:@Brando Zhang -MSFT
  • 如何启用诊断?直接使用网络应用门户或其他方式?
  • 门户网站直接@Brando Zhang - MSFT
  • 由于我没有您的应用程序,所以我现在无法重现您的错误。我建议您可以尝试创建另一个网络应用程序。然后您可以检查您的应用程序没有使用任何其他诊断并将应用程序发布到新的 Web 应用程序。最后按照我的帖子步骤启用网络应用诊断。
  • 您现在看到的错误是什么?还是 403 auth fail 错误吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多