2015-02-03 2 views
2

Я настраиваю небольшое приложение для тестирования недавно созданной служебной шины базового уровня Azure. Я использую Masstransit создать образец издатель:Почему Azure Service Bus думает, что свойство DefaultTimeToLive не установлено?

ServiceBusFactory.New(sbc => 
       { 
        var queueUri = "azure-sb://" + azureNamespace + "/Sample_TestPub"; 

        sbc.UseAzureServiceBus(a => 
        { 
         a.SetDefaultMessageTimeToLive(TimeSpan.FromSeconds(30)); 
         a.ConfigureNamespace(azureNamespace , 
              azureNs => 
              { 
               azureNs.SetKey(sharedKey); 
               azureNs.SetKeyName(keyName); 
               azureNs.Validate(); 
              }); 
        }); 
        sbc.ReceiveFrom(queueUri); 
        sbc.UseAzureServiceBusRouting(); 
       }) 
      ) 

Я использую следующий код для публикации:

text = Console.ReadLine(); 
      var newWhat = new SomethingRequest 
       { 
        What = text, 
        When = DateTime.Now 
       }; 
      ISomethingResponse response = null; 
      bus.PublishRequest(newWhat, cfg => 
       { 
        cfg.Handle<ISomethingResponse>(r => response = r); 
       }); 

На PublishRequest() Я получаю следующее сообщение об ошибке:

azure-sb://namespace/Sample_TestPub => Invalid connection to host

inner exception: {"The remote server returned an error: (400) Bad Request. SubCode=40000. The property value for 'DefaultMessageTimeToLive' must be between 00:00:01 and 14.00:00:00 when the namespace 'namespace' is using 'Basic' tier.\r\nParameter name: DefaultMessageTimeToLive. TrackingId:67c96bcc-e376-429a-8f22-79227e89f935_G24,TimeStamp:2/3/2015 2:56:33 AM"}

Я не настроил свой автобус в любом случае через портал Azure - есть ли что-то, что мне не хватает? Вызывает ли вызов SetDefaultMessageTimeToLive() то, что я думаю, что он делает?

+0

Не похоже, чтобы у вас было TTL не менее 1 минуты – zaitsman

+0

00:00:01 должно означать «1 секунду» (для C# в LinqPad попробовать TimeSpan.FromSeconds (1) == TimeSpan.Parse («00:00:01») он должен вернуть True) В любом случае я пробовал больше времени с теми же результатами – ryanhallcs

+3

Я не могу ответить на это на транспорте ASB, поскольку я его не писал, но я знаю, что MassTransit 3 имеет раннюю поддержку сервисного автобуса, но пока не готова к использованию. –

ответ

1

Я получил ту же ошибку, используя пример приложения из NServiceBus. Когда я переключил свою служебную шину Azure на Стандартный уровень вместо Basic, он начал работать. Я не знаю почему. Однако моя внутренность говорит о том, что текст ошибки не соответствует именно этой проблеме.