Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF单元测试导致System.ServiceModel.FaultException异常_C#_.net_Wcf_Exception - Fatal编程技术网

C# WCF单元测试导致System.ServiceModel.FaultException异常

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

因此,我有一个WCF服务,它似乎可以在部署的生产环境中完美地工作。但是,在这个WCF服务的单元测试期间,我的构建间歇性地失败。奇怪的是,它并不总是相同的单元测试,但它总是使用WCF服务的单元测试

例外情况:

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。已更新答案以将其从队列中删除。