WCF客户端未抛出FaultException。相反,我得到了通信异常

时间:2014-05-14 06:02:59

标签: c# wcf faultexception

我有一个简单的WCF服务器,我正在抛出FaultException<InvalidOperationException>,但在客户端我只收到通知异常,但下面有错误。

  

套接字连接已中止。这可能是由错误引起的   处理您的消息或超过接收超时   远程主机或底层网络资源问题。本地套接字   超时是&#39; 00:59.8080000&#39;。

请参阅下面的我所拥有的代码,如果遗漏了某些内容,请提供帮助并告诉我。

服务

[OperationContract]
[FaultContract(typeof(InvalidOperationException))]
bool DoWork()

服务实施代码

public bool DoWork()
    {var invalidOperationException =
          new InvalidOperationException(
            "Can't dowork", exception);

        // throw InvalidOperationException as an FaultException to the service consumer.
        throw new FaultException<InvalidOperationException>(
          invalidOperationException,
             exception.Message,
              new FaultCode("Test Message"),
              "DoWork");
}

客户端代码。

try
{
 var service = new ServiceClient();
 var result = service.DoWork();
}
catch (TimeoutException timeoutException)
          {

          }
          catch (FaultException<InvalidOperationException> invalidOperationException)
          {

          }
          catch (FaultException unknownFault)
          {

          }
          catch (CommunicationException communicationException)
          {

          }

1 个答案:

答案 0 :(得分:2)

问题是

中提供的内部异常
var invalidOperationException =
      new InvalidOperationException(
        "Can't dowork", exception);

如果你删除它会起作用。

我的猜测是,它与尝试序列化CLR异常有关。