返回转义的xml时出现NetDispatcherFaultException错误

时间:2011-06-29 17:27:31

标签: c# xml wcf web-services

我有一个soap web服务,其中响应主体包含一些转义的xml。 所以在我的回应中:

 <soap:Body>
   <GetServiceResponse xmlns="http://www.abc.com/x/">
        <GetServiceResult>
           <Result>
              <Value>&amp;lt;/param&amp;gt; etc....</Value>
           </Result>
        </GetServiceResult>
     </GetServiceResponse>
 </soap:Body>

在我的客户端上,我得到一个异常NetDispatcherFaultException“格式化程序在尝试反序列化时引发异常”。我在客户端上使用以下代码:

 var binding = new BasicHttpBinding();
 var address = new EndpointAddress("http://localhost:2948/ReportingService.asmx");
 ReportingServiceSoap service = new ReportingServiceSoapClient(binding, address);
 var response = service.GetConfig(request); <-- Exception raised on call

如果我用一些字符串值替换转义的文本(没有转义的xml),那么客户端不会引发异常。

任何想法在哪里看?

JD

1 个答案:

答案 0 :(得分:3)

启用“例外”后,我发现这是一个ReadQuotas问题。另外,我正在测试mSpec的客户端界面,这意味着没有使用更正的ReadQuotas值读取app.config。所以在代码中我有:

var binding = new BasicHttpBinding();
binding.ReaderQuotas.MaxStringContentLength = 2147483647;
binding.ReaderQuotas.MaxArrayLength = 2147483647;
binding.ReaderQuotas.MaxDepth = 2147483647;
binding.ReaderQuotas.MaxNameTableCharCount = 2147483647;
binding.ReaderQuotas.MaxBytesPerRead = 2147483647;

这解决了这个问题。