2013-08-03 10 views
0

Я использую код ниже, чтобы создать очередь, используя SharedSecretTokenProvider. Тем не менее, я не могу указать правильные значения managerName & managerKey Форма формы окна azure portal.Как создать очередь в Windows Azure?

Это приводит к Http 401 Несанкционированное исключение. Как устранить эту ошибку?

const string queueName = "thequeue"; 
var tokenProvider = TokenProvider.CreateSharedSecretTokenProvider(
    ConfigurationManager.AppSettings["managerName"], 
    ConfigurationManager.AppSettings["managerKey"]); 

Uri uri = ServiceBusEnvironment.CreateServiceUri("http", "MyNamespace" , string.Empty); 
NamespaceManager namespaceManager = new NamespaceManager(uri, tokenProvider); 

QueueDescription qd = namespaceManager.CreateQueue(new QueueDescription(queueName) 
{ 
    DefaultMessageTimeToLive = TimeSpan.FromMinutes(15), 
    DuplicateDetectionHistoryTimeWindow = TimeSpan.FromMinutes(10), 
    LockDuration = TimeSpan.FromMinutes(2), 
    EnableBatchedOperations = true, 
    EnableDeadLetteringOnMessageExpiration = true, 
    RequiresDuplicateDetection = true 
}); 

enter image description here

ответ

1

Начать с ServiceBusEnvironment.CreateServiceUri Method. Обратите внимание, что URI конечной точки служебной шины всегда должны использовать протокол «sb: //»; например, sb: //contoso.servicebus.windows.net/helloservicebus.

Uri address = ServiceBusEnvironment.CreateServiceUri("sb", "contoso", "helloservicebus"); 

Правильно вставьте свои входы URI, и вы должны быть в бизнесе.

3

Я пробовал это пару раз с вашим кодом, прежде чем я понял проблему. Вы используете SharedSecretTokenProvider, который пойдет в ACS, думая, что у него есть issuer and a key. Поскольку вы пытаетесь использовать SAS, вместо этого вы хотите использовать CreateSharedAccessSignatureTokenProvider.

Поменяйте это и предоставьте ключ и keyName, и вы должны быть хорошими.

Кроме того, Viperguynaz является правильным, вы должны использовать «sb» вместо http. Он потерпел неудачу, прежде чем он достиг этого, потому что поставщик токенов правильно отклонил ваш доступ, так как не понимал ключ и имя ключа, которые вы передавали, за то, что, по его мнению, был эмитентом и ключом, который использует ACS.