2014-04-01 62 views
2

有一个web服务(我不控制)返回一个大的响应。在简单的控制台应用程序中,对服务的调用返回了预期的数据。但是,当我在Web应用程序中执行相同操作时,部分数据丢失。通过Web服务器调用WCF响应时被截断

如果我将响应序列化并将其写入文件,则一个文件为215mb,另一个文件为117mb(它们应该具有相同的大小)。

Web服务错误出现在我的本地加工和生产Web服务器上。

没有错误引发。我已经运行了一个WCF跟踪,并且没有显示任何错误或警告。事件日志中没有任何记录。

< system.serviceModel> config部分在两个应用程序之间完全相同。

<system.serviceModel> 
     <bindings> 
      <wsHttpBinding> 
       <binding name="WSHttpBinding_Service" maxReceivedMessageSize="2147483647" /> 
      </wsHttpBinding> 
     </bindings> 
     <client> 
      <endpoint address="http://myService/Service.svc" binding="wsHttpBinding" 
       bindingConfiguration="WSHttpBinding_Service" contract="MyService.Service" 
       name="WSHttpBinding_Service"> 
       <identity> 
        <dns value="localhost" /> 
       </identity> 
      </endpoint> 
     </client> 
</system.serviceModel> 
+0

你的意思是,117MB应该是215MB ? –

+0

@PatrickHofman - 是的,问题已被编辑为清晰 – HitLikeAHammer

+0

也许显而易见的问题,但你可以显示一些代码?两边的代码是否相同?网页服务器上是否有页面超时?内容是真的被截断,还是在某个地方有所不同? –

回答

1

有几种可能性:

  • 如果数据是越来越截断你将有一个异常的XML,这将导致异常。
  • 如果Web服务器没有使用正确的配置文件,并且它不允许响应的大小,您将得到一个异常。

在上述两种情况下,您都无法序列化结果。

所以你得到一个良好的xml回来,但它是不同的大小。然后有两种可能性:

  • 在编码的不同,影响大小
  • 的请求参数的差异,影响是什么退回的