Microsoft.WindowsAzure.Storage.StorageException: удаленный сервер возвратил ошибку: (403)

При новой публикации это первоначальная ошибка:

System.ApplicationException: слушатель трассировки AzureBlobTraceListener отключен. ---> System.InvalidOperationException: URL-адрес SAS для учетной записи облачного хранилища не указан. Используйте переменную окружения 'DIAGNOSTICS_AZUREBLOBCONTAINERSASURL', чтобы определить его. На Microsoft.WindowsAzure.WebSites.Diagnostics.AzureBlobTraceLi‌ stener.RefreshConfig‌ ()

Затем я добавил DIAGNOSTICS_AZUREBLOBCONTAINERSASURL к настройкам приложения, значение которого установлено равным сгенерированному URL SAS службы Blob. При этом я получаю новую ошибку:

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 & parsedSnapshot) в Microsoft.WindowsAzure.Storage.Core.Util.NavigationHelper.ParseBlobQueryAndVerify(адрес StorageUri, StorageCredentials& parsedCredentials, Nullable`1& parsedSnapshot) в адресе хранилища Microsoft.WindowsAzures.ReaderSecurityBloader..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, параметры доступа к доступному условию, BlobRequestOptions, операция OperationContext at Microsoft.WindowsAzure.WebSites.Diagnostics.AzureBlobTraceListener.ConsumeBuffer() Информация о запросе RequestID:5225782d-0001-0175-6d94-fc82dd000000 RequestDate: Пт, 14 июля 2017 11:33:16 GMT StatusMessage: Серверу не удалось аутентифицировать запрос. Убедитесь, что значение заголовка авторизации сформировано правильно, включая подпись. ErrorCode:AuthenticationFailed

Строка подключения, используемая для объявления AzureWebJobsDashboard и AzureWebJobsStorage в настройках приложения: введите описание изображения здесь

1 ответ

Решение

Согласно вашему описанию, я предполагаю, что причина, по которой вы столкнулись с ошибкой, заключается в том, что ваш токен SAS не имеет достаточных разрешений для CRUD-объекта.

Маркер SAS должен быть токеном контейнера SAS, а не токеном SAS.

Кроме того, если вы установите функцию регистрации приложений в журналах диагностики веб-приложения azure, она автоматически сгенерирует токен SAS в настройках приложения вашего веб-приложения.

Более подробно, вы можете обратиться к изображению ниже:

Установите учетную запись хранения в журналах диагностики.

введите описание изображения здесь

Затем он автоматически установит appsetting:

введите описание изображения здесь


Обновить:

Не удалось проверить строку подключения панели мониторинга Microsoft Azure WebJobs SDK. Строка подключения учетной записи хранения Microsoft Azure не отформатирована правильно.

Если вы загружаете веб-задания в свое веб-приложение, веб-задания требуют двух настроек приложения. Одна - это строка подключения Dashboard, другая - AzureWebJobsStorage.

Для обоих этих параметров необходима строка подключения к хранилищу, а не SAS хранилища.

Вы можете найти строку подключения к хранилищу, как показано на рисунке ниже:

1. Откройте функцию ключа доступа к хранилищу.

введите описание изображения здесь

2. Скопируйте строку подключения:

введите описание изображения здесь

3.Замените строку подключения в настройках приложения веб-приложения.

введите описание изображения здесь

Другие вопросы по тегам