2013-02-18 3 views
4

Я пытаюсь вставить элемент в хранилище таблиц Azure с помощью ключа общего доступа, который был сгенерирован с использованием защищенной веб-службы (чтобы сохранить ключ защищен). Моя проблема в том, что я получаю ошибку 400 (Bad Request). Пожалуйста, может кто-нибудь сказать мне, что я делаю неправильно?Вставка объекта таблицы с REST API в Azure Storage Table с использованием сгенерированной подписи общего доступа

Я возвращаю Uri с SaS на нем из службы, например.

https://myaccount.table.core.windows.net/l4nlog?sv=2012-02-12&se=2013-02-18T17:42:58Z&tn=L4NLog&sp=a&sig=rGImh0XZ8KcbMI+k1JuNvGGfq13UioYaQFXxg+M1an0=

Я затем добавить информацию для таблицы в поток запроса в формате, как указано на веб-сайте Microsoft (за исключением, что атрибут пространства имен Atom определяется как Xmlns: а = "HTTP: // www.w3.org/2005/Atom "):

http://msdn.microsoft.com/en-us/library/windowsazure/dd894033.aspx

Я также добавить: request.Method = "POST"; request.ContentType = «приложение/атом + XML» X-MS-дата в формате RFS1123

Однако, я не устанавливая заголовок авторизации (который, вероятно, мое падение), потому что я предполагаю ГАС должен сделайте эту работу для меня.

Итак, любые указатели будут очень благодарны ...!

Прости меня, если я пропустил какую-либо информацию ...

Steve

+0

для тех, кто хочет знать, похоже, что моя проблема была проблемой пространства имен с xml для RequestStream. Заголовок авторизации не требуется при указании сигнатуры общего доступа. –

+0

У меня такая же проблема, как и у моего компьютера, дата и время. Один из требований Azure заключается в том, что время запроса должно иметь максимальную задержку в 15 м, и я изменил время тестирования другого материала – Miguel

ответ

0

Это трудная проблема. Эта ошибка означает, что в вашем запросе что-то не так. Я предлагаю попробовать следующее вещь:

1-) Убедитесь, что служба SaaS указывает на правильную версию API службы хранения (1.6, 1.7, 1.8, или любой другой)

2-) Проверьте ограничения запроса для Azure Table Storage

3-) Да, вы должны проверить подлинности запроса, (но я думаю, что это не проблема)

Смежные вопросы