Имеет ли OperationContextScope канал связи?

Располагает ли OperationContextScope и канал связи, когда он расположен?

В следующем примере я получаю исключение "Объект связи, System.ServiceModel.Channels.ServiceChannel, не может использоваться для связи, потому что он находится в состоянии Failed", когда ServiceMethod выполняет второй раз:

clientProxy = ...
public int ServiceMethod()
{
   using(OperationContextScope c = new OperationContextScope((IClientChannel)clientProxy))
   {
      //Add request header
      OperationContext.Current.OutgoingMessageHeaders.Add(...)
      clientProxy.method(...); //When this execute the second time, a fault state exception occur
   }

   //Add reply header
   OperationContext.Current.OutgoingMessageHeaders.Add(...)
   return 1;
}

Кроме того, если это важная информация, clientProxy.method() передает обратный вызов.

1 ответ

Судя по всему, ответ - нет. У меня был метод OneWay, который выбрасывал необработанное исключение. Исключение никогда не показывалось в сервисе или клиенте, поэтому было сложно его поймать. Обработка этого решила проблему.

Другие вопросы по тегам