我有一个简单的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)
{
}
答案 0 :(得分:2)
问题是
中提供的内部异常var invalidOperationException =
new InvalidOperationException(
"Can't dowork", exception);
如果你删除它会起作用。
我的猜测是,它与尝试序列化CLR异常有关。