C# WCF单元测试导致System.ServiceModel.FaultException异常
因此,我有一个WCF服务,它似乎可以在部署的生产环境中完美地工作。但是,在这个WCF服务的单元测试期间,我的构建间歇性地失败。奇怪的是,它并不总是相同的单元测试,但它总是使用WCF服务的单元测试 例外情况:C# WCF单元测试导致System.ServiceModel.FaultException异常,c#,.net,wcf,exception,C#,.net,Wcf,Exception,因此,我有一个WCF服务,它似乎可以在部署的生产环境中完美地工作。但是,在这个WCF服务的单元测试期间,我的构建间歇性地失败。奇怪的是,它并不总是相同的单元测试,但它总是使用WCF服务的单元测试 例外情况: System.ServiceModel.FaultException[System.ServiceModel.ExceptionDetail]: The number of bytes available is inconsistent with the HTTP Content-Lengt
System.ServiceModel.FaultException[System.ServiceModel.ExceptionDetail]: The number of bytes available is inconsistent with the HTTP Content-Length header. There may have been a network error or the client may be sending invalid requests.
奇怪的是,异常实际上只发生在构建机器上,而不会发生在开发人员机器上。而且这种情况似乎只有75%的时间发生
WCF并不是.NET最强大的方面,因此,任何为我指明正确方向的帮助都是有用的。这个问题最终出现在我们的catch子句中:
var proxy = new WcfProxy();
try
{
// Do something.
}
catch (Exception ex)
{
proxy.Close();
throw;
}
其中catch子句应该使用proxy.Abort(),因为Close()可以引发另一个异常
catch (Exception ex)
{
proxy.Abort();
throw;
}
看来我可能已经弄明白了。似乎catch子句之一调用的是client.Close(),而不是client.Abort()。client.Close()可以引发另一个异常,这就是发生的情况。client.Abort()不会引发异常。请将解决方案作为答案发布,并自行接受。这会把你的问题从“未回答”的问题中删除。很抱歉,mkernbach。已更新答案以将其从队列中删除。