2016-01-13 4 views
2

Я готовлю разработку приложения, которое подключается к Azure Service Bus. Для разработки я хочу использовать Service Bus 1.1.Service Bus 1.1 создание очереди с WindowsAzure.ServiceBus dll

Я установил localy Service Bus 1.1, и он работает нормально, когда я подключаюсь к пакету Service Bus.v1_1 ver. 1.0.5.

Но поскольку я хочу в конечном итоге работать с Azure, я предпочитаю использовать пакет WindowsAzure Service Bus, который, как я знаю, работает с Service Bus 1.1.

Но когда я хочу, чтобы выполнить:

namespaceManager.QueueExists(queueName) 

с WindowsAzure.ServiceBus версии 3.1.2 пакет я получаю:

'System.ArgumentException' .... The remote server returned an error: (400) Bad Request. The api-version in the query string is not supported. Either remove it from the Uri or use one of '2012-03,2012-08,2013-04,2013-07'.

Добавление ?api_version=2013-07 Ури не помогает.

Однако отправка сообщения в очередь, существующую на локальном SB1.1, хорошо работает (с использованием WindowsAzure.ServiceBys 3.1.2). Так оно применимо только к соединениям с NamespaceManager.

У кого-нибудь есть идеи, почему это не работает?


код я использую для испытаний:

var cs ="Endpoint=sb://mylocalmachine/ServiceBusDefaultNamespace/;StsEndpoint=https://mylocalmachine:9355/ServiceBusDefaultNamespace/;RuntimePort=9354;ManagementPort=9355"; 
var queueName = "AAA"; 
var namespaceManager = NamespaceManager.CreateFromConnectionString(cs); 
var messagingFactory = MessagingFactory.CreateFromConnectionString(cs); 
var ver = namespaceManager.GetVersionInfo(); 

if (namespaceManager.QueueExists(queueName)) 
{ 
    namespaceManager.DeleteQueue(queueName); 
} 

namespaceManager.CreateQueue(queueName); 

QueueClient client = messagingFactory.CreateQueueClient(queueName); 
client.Send(new BrokeredMessage("Hello! " + DateTime.Now)); 


client = messagingFactory.CreateQueueClient(queueName, ReceiveMode.ReceiveAndDelete); 
BrokeredMessage message = client.Receive(); 
if (message != null) 
{ 
    Console.WriteLine(message.GetBody<string>()); 
} 
Console.ReadKey(); 

ответ

0

Насколько мне известно, пакет WindowsAzure.ServiceBus не совместим с в помещениях Windows Service Bus. Мы застряли в использовании старого пакета.

Я считаю, что библиотеки совместимы с большинством источников, поэтому, когда вы переходите на использование служебной шины Azure вместо on-prem, то это должно быть так же просто, как замена пакета и изменение механизмов аутентификации и строк подключения и перекомпиляция и тестирование.

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