在新发布时,这是最初的错误:
System.ApplicationException:跟踪侦听器AzureBlobTraceListener 被禁用。 ---> System.InvalidOperationException:SAS的URL 未指定云存储帐户。使用环境 变量' DIAGNOSTICS_AZUREBLOBCONTAINERSASURL'定义it.at Microsoft.WindowsAzure.WebSites.Diagnostics.AzureBlobTraceLi stener.RefreshConfig()
然后我将DIAGNOSTICS_AZUREBLOBCONTAINERSASURL
添加到其值设置为的应用程序设置中
生成的Blob服务SAS URL。在这,我得到一个新的错误:
System.ApplicationException:跟踪侦听器AzureBlobTraceListener 被禁用。 ---> System.ArgumentException:缺少必需的 有效共享访问签名的参数 Microsoft.WindowsAzure.Storage.Core.Auth.SharedAccessSignatureHelper.ParseQuery(IDictionary的
2 queryParameters, Boolean mandatorySignedResource) at Microsoft.WindowsAzure.Storage.Core.Util.NavigationHelper.ParseBlobQueryAndVerify(Uri address, StorageCredentials& parsedCredentials, Nullable
1安培; parsedSnapshot)at Microsoft.WindowsAzure.Storage.Core.Util.NavigationHelper.ParseBlobQueryAndVerify(StorageUri 地址,StorageCredentials& parsedCredentials,Nullable`1& parsedSnapshot)at Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer.ParseQueryAndVerify(StorageUri 地址,StorageCredentials凭据) Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer..ctor(StorageUri containerAddress,StorageCredentials凭据)at Microsoft.WindowsAzure.WebSites.Diagnostics.AzureBlobTraceListener.RefreshConfig()
然后我将sr=b
添加到' DIAGNOSTICS_AZUREBLOBCONTAINERSASURL
'导致以下错误:
Microsoft.WindowsAzure.Storage.StorageException:远程服务器 返回错误:(403)禁止。 ---> System.Net.WebException:The 远程服务器返回错误:(403)禁止。在 System.Net.HttpWebRequest.GetResponse()at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync [T](RESTCommand
1 cmd, IRetryPolicy policy, OperationContext operationContext) --- End of inner exception stack trace --- at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand
1 cmd,IRetryPolicy策略,OperationContext operationContext)at Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.DownloadBlockList(BlockListingFilter blockListingFilter,AccessCondition accessCondition, BlobRequestOptions选项,OperationContext operationContext)at Microsoft.WindowsAzure.WebSites.Diagnostics.AzureBlobTraceListener.AppendStreamToBlob(流 流) Microsoft.WindowsAzure.WebSites.Diagnostics.AzureBlobTraceListener.ConsumeBuffer() 请求信息请求ID:5225782d-0001-0175-6d94-fc82dd000000 RequestDate:星期五,2017年7月14日11:33:16 GMT StatusMessage:服务器失败 验证请求。确保授权的值 标题正确形成,包括签名。 错误码:AuthenticationFailed
用于在应用设置中声明AzureWebJobsDashboard和AzureWebJobsStorage的连接字符串: enter image description here
答案 0 :(得分:5)
根据您的描述,我猜您遇到错误的原因是您的SAS令牌没有足够的权限来CRUD blob。
SAS令牌必须是blob容器SAS令牌而不是blob SAS令牌。
此外,如果您设置了azure Web应用程序的诊断日志应用程序日志记录功能,它将在您的Web应用程序的appsetting中自动生成SAS令牌。
更多细节,您可以参考下图:
在诊断日志中设置存储帐户。
然后它会自动设置appsetting:
更新
无法验证Microsoft Azure WebJobs SDK仪表板连接字符串。 Microsoft Azure存储帐户连接字符串格式不正确。
如果您将webjobs上传到您的网络应用程序,则网络作业需要两个appsetting。一个是Dashboard连接字符串,另一个是AzureWebJobsStorage。
这两个设置都需要存储连接字符串而不是存储SAS。
您可以找到存储连接字符串,如下图所示:
1.打开存储访问密钥功能。
2.复制连接字符串:
3.在Web应用程序设置中更换连接字符串。