2016-05-25 5 views
0

Мне нужно обновить пакет служебной шины nuget до 3.2.2 (думаю, это требует хост четного процессора), но я всегда сохранял наш проект bus bus в 2.8.2. Это связано, главным образом, с тем, что BeginReceive() и EndReceive(), похоже, были удалены. Есть ли какой-либо причине или в любом случае я могу легко преобразовать этотAzure Service Bus 3.2.2 BeginReceive()

public void StartReceiving(RecieverCallback callback, TimeSpan waittime, object state = null) 
    { 
     this._recieverCallback = callback; 

     _queueClient = this.MessagingFactory.CreateQueueClient(QueueName, ReceiveMode); 

     // make initial async call 
     _asyncresult = _queueClient.BeginReceive(waittime, ReceiveDone, _queueClient); 
    } 

    public void ReceiveDone(IAsyncResult result) 
    { 
     if (result != null) 
     { 
      try 
      { 
       var tmpClient = result.AsyncState as QueueClient; 
       var brokeredMessage = tmpClient.EndReceive(result); 
       if (brokeredMessage != null) 
       { 
        if (ReceiveMode == ReceiveMode.PeekLock) 
        { 
         brokeredMessage.Complete(); 
        } 
        var tmpMessage = brokeredMessage.GetBody<T>(); 
        ProcessMessageProperties(tmpMessage, brokeredMessage); 

        _recieverCallback(tmpMessage); 
       } 
      } 
      catch (Exception ex) 
      { 
       _logger.Fatal("ReceiveDone: {0}", ex.Message); 
       Console.WriteLine(ex.Message); 
      } 
     } 

     // do recieve for next message 
     _asyncresult = _queueClient.BeginReceive(ReceiveDone, _queueClient); 
    } 

Изображение показывает ошибку enter image description here

Следующее изображение показывает, что произойдет, если я обновить ServiceBus до 3.2.2, который я считаю, будет решить исходную ошибку (программа работает 3.2.2, Lib проект работает 2.8.x) enter image description here

ответ

0

Я понял это смотрите ссылку https://gist.github.com/sitereactor/8953583

Если у кого-то есть аналогичная проблема, дайте мне знать и опубликуйте мой код, но его 95% совпадают по ссылке.