1

OperationContextScope 是否在处置时也处置通信通道?

在以下示例中,我在第二次执行时收到“通信对象 System.ServiceModel.Channels.ServiceChannel,因为它处于故障状态,因此无法用于通信”异常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() 会传递一个回调。

4

1 回答 1

0

显然,答案是否定的。我有一个抛出未捕获异常的 OneWay 方法。该异常从未在服务或客户端中显示,因此很难捕获。处理这个问题就解决了。

于 2014-01-23T15:13:23.180 回答