API RESTful для аналитических служб Azure не работают - PullRequest
1 голос
/ 16 января 2012

Хорошо, я буду прямо здесь. Я успешно вызвал REST API Windows Azure Analytic Services для получения и настройки параметров ведения журнала и метрик BLOB-объектов.

Однако, когда я проверяю таблицы и очереди, я получаю следующее сообщение об ошибке: AuthenticationFailed Серверу не удалось аутентифицировать запрос. Убедитесь, что значение заголовка авторизации сформировано правильно, включая подпись. RequestId: 9d4436e0-9367-46ed-9967-b3ebe888d2f8 Время: 2012-01-16T09: 20: 09.5141262Z

Строка, которую я использую для подписи, выглядит следующим образом: GET\n\n\n\n\n\n\n\n\n\n\n\nx-ms-date:Mon, 16 Jan 2012 09:04:50 GMT\nx-ms-version:2011-0818\n/<accountname>/\ncomp:properties\nrestype:service. Это прекрасно работает для BLOB-объектов.

Самое неприятное, что я не получаю AuthenticationErrorDetail в своем ответе от Аналитических служб. Когда я попытался вызвать настройки API REST для BLOB-объектов, я фактически получил AuthenticationErrorDetail, в котором указывалось, какую строку сервер подписывал. Это действительно помогло мне построить вышеупомянутое.

Кто-нибудь еще переживал нечто подобное?

Ответы [ 2 ]

0 голосов
/ 26 января 2012

Я столкнулся с похожими проблемами - с блобами работает нормально, таблицы не работают - когда я неправильно использовал DateTime.Now вместо DateTime.UtcNow для заголовка x-ms-date

0 голосов
/ 18 января 2012

Я понял, что мои вызовы REST работают и для очередей.Однако он не работал для таблиц.

http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx предоставили дополнительную информацию:

2009-09-19 Общий ключ Lite и формат обслуживания таблиц

Этот формат поддерживает Shared Key и Shared Key Lite для всех версий службы Table и Shared Key Lite для версии 2009-09-19 служб Blob и Queue.Этот формат идентичен тому, который использовался в предыдущих версиях сервисов хранения.Создайте строку CanonicalizedResource в следующем формате:

Начиная с пустой строки (""), добавьте косую черту (/), за которой следует имя учетной записи, которой принадлежит доступ к ресурсу.

Добавить кодированный путь ресурса URI.Если URI запроса обращается к компоненту ресурса, добавьте соответствующую строку запроса.Строка запроса должна включать знак вопроса и параметр comp (например,? Comp = metadata).Никакие другие параметры не должны быть включены в строку запроса.

В конце концов, он принял путь ?comp=properties.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...