0

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

套接字连接被中止。这可能是由于处理您的消息时出错或远程主机超出接收超时,或者是潜在的网络资源问题造成的。本地套接字超时为“00:00:59.8080000”。

请参阅下面的代码以获取我的代码,请帮助并让我知道是否缺少某些内容。

服务

[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)
          {

          }
4

1 回答 1

2

问题是提供的内部异常

var invalidOperationException =
      new InvalidOperationException(
        "Can't dowork", exception);

如果您删除它,它将起作用。

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

于 2014-05-14T08:11:15.257 回答