通过 Web 服务器调用时,WCF 响应将被截断
本文关键字:响应 WCF Web 服务器 调用 通过 | 更新日期: 2023-09-27 17:56:14
有一个网络服务(我无法控制)返回一个大的响应。 在简单的控制台应用程序中,对服务的调用将返回预期数据。 但是,当我在 Web 应用程序中执行相同操作时,某些数据丢失了。
如果我序列化响应并将其写入文件,一个文件为 215mb,另一个为 117mb(它们的大小应该相同)。
Web服务错误发生在我的本地计算机和生产 Web 服务器上。
未引发任何错误。 我运行了WCF
跟踪,并且没有显示任何错误或警告。 事件日志中未记录任何内容。
两个应用程序之间的<system.serviceModel>
配置部分完全相同。>
<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>
有几种可能性:
- 如果数据被截断,您将有一个格式错误的 xml,这将导致异常。
- 如果 Web 服务器未使用正确的配置文件,并且它不允许响应大小,则会出现异常。
在上述两种情况下,您都无法序列化结果。
因此,您正在返回格式良好的 xml,但它的大小不同。那么有两种可能性:
- 编码差异,影响大小
- 请求参数的差异,影响返回的内容