2013-11-06 1 views
2

Я пытаюсь сделать некоторые звонки на новый Azure Scheduler API. Тем не менее, все мои просьбы вернуться с этой ошибкой:Почему вызовы API управления сервисами работают, но вызовы API Scheduler не выполняются?

<Error xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
    <Code>AuthenticationFailed</Code> 
    <Message>The server failed to authenticate the request. Verify that the certificate is valid and is associated with this subscription.</Message> 
</Error> 

Я уверен, что у меня есть все установки правильно, потому что я могу сделать звонки, используя один и тот же код и сертификат на Azure Service Management API.

Код, который я использую для присоединения сертификата к веб-запросу, находится в MSDN Sample. Вызываемые API-интерфейсы Scheduler API - это доступность проверки имен, создание облачной службы и создание коллекции заданий.

Я также подтвердил, что моя подписка активна для предварительного просмотра Планировщика.

Вот пример запроса я попытался:

Create Cloud Service

Request A cloud service is created by submitting an HTTP PUT operation to the CloudServices OData collection of the Service Management API Tenant.Replace with your subscription ID and with your cloud service ID.

Так для этого я создаю веб-запрос, указывающий на:

https: //management.core .windows.net/[MySubId]/cloudServices/[MyNewServiceName]

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(requestUri); 

// Define the requred headers to specify the API version and operation type. 
request.Headers.Add("x-ms-version", "2012-03-01"); 
request.Method = "PUT"; 
request.ContentType = "application/xml"; 

Следующая I объявление d орган запроса, указанный в документации:

<CloudService xmlns:i='http://www.w3.org/2001/XMLSchema-instance' xmlns='http://schemas.microsoft.com/windowsazure'> 
    <Label>[MyServiceName]</Label> 
    <Description>testing</Description> 
    <GeoRegion>uswest</GeoRegion> 
</CloudService> 

И, наконец, я добавляю сертификат, который я использую с подпиской на эту учетную запись.

// Attach the certificate to the request. 
request.ClientCertificates.Add(certificate); 

Я пытаюсь получить ответ, и вместо этого получаю сообщение об ошибке, показанном выше.

BTW - Я также пробовал разные регионы, думая, что это проблема региона, поскольку планировщик не поддерживается во всех регионах, но я все равно получаю тот же ответ.

+0

Привет, Брайант, на вызов, который вы пытались сделать, и на какой именно URI вы отправили запрос? Если вы можете поделиться полными заголовками и телом запроса, это поможет! –

+0

Конечно, я могу опубликовать их. Какой вызов метода был бы самым простым для устранения неполадок? – Bryant

+0

Можете ли вы проверить, есть ли косая черта «/» в URL-адресе вашего запроса? Я играл с REST API, и я могу создавать облачные сервисы без каких-либо проблем. Я получаю такую ​​же ошибку, если я поставлю конечную косую черту в свой URL-адрес запроса. –

ответ

0

Вы должны зарегистрировать планировщик в приложении первым по телефону (PUT):

<subscription id>/services?service=scheduler.JobCollections&action=register 

Если вы хотите сделать это в .NET вы можете использовать новые библиотеки управления:

var schedulerServiceClient = new SchedulerManagementClient(credentials); 
var result = schedulerServiceClient.RegisterResourceProvider(); 

Console.WriteLine(result.RequestId); 
Console.WriteLine(result.StatusCode); 
Console.ReadLine(); 

Подробнее: http://fabriccontroller.net/blog/posts/a-complete-overview-to-get-started-with-the-windows-azure-scheduler/

+1

Я зарегистрировал планировщик, и я все равно получаю тот же результат в других моих вызовах. – Bryant

+1

Я также пробовал использовать новые библиотеки управления, а GetResourceProviderProperties отлично работает, вызов создания коллекции заданий терпит неудачу. Я предполагаю, что планировщик просто не активирован для моей учетной записи. – Bryant

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