Имеет ли 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, который выбрасывал необработанное исключение. Исключение никогда не показывалось в сервисе или клиенте, поэтому было сложно его поймать. Обработка этого решила проблему.