2011-06-29 16 views
1

レスポンス本体にエスケープされたxmlが含まれているSOAPサービスがあります。 は、だから私は持っているレスポンスのボディに:私のクライアントでエスケープされたXMLを返すときにNetDispatcherFaultExceptionエラーが発生しました

<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「デシリアライズしようとしている間に、フォーマッタが例外を投げた」取得します。私はいくつかの文字列値を持つエスケープ文字を交換する場合、クライアントは例外を発生しない(なしXMLをエスケープ)

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 

:私は、クライアント上で、次のコードを使用しています。

見た目はどこですか?

JD

答えて

3

例外をオンにすると、ReadQuotasの問題であることがわかりました。また、mSpecからクライアントインターフェイスをテストしていました。つまり、app.configが訂正されたReadQuotas値で読み取られていないことを意味していました。だからコードで私は持っている:

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

これは問題を解決しました。

関連する問題