通过 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>

通过 Web 服务器调用时,WCF 响应将被截断

有几种可能性:

  • 如果数据被截断,您将有一个格式错误的 xml,这将导致异常。
  • 如果 Web 服务器未使用正确的配置文件,并且它不允许响应大小,则会出现异常。

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

因此,您正在返回格式良好的 xml,但它的大小不同。那么有两种可能性:

  • 编码差异,影响大小
  • 请求参数的差异,影响返回的内容