4

我正在使用一个 WCF Web 服务,我在 Web 服务端无法控制它。

我提供了一个自动生成的 svc.cs 代理文件,我正在使用它。

实际上我正在请求网络服务从客户端下载一些大数据。

有时我得到

System.ServiceModel.ProtocolException

在我的客户端。

例外情况如下:

System.ServiceModel.ProtocolException:可用字节数与 HTTP Content-Length 标头不一致。可能存在网络错误或客户端可能正在发送无效请求。

服务器堆栈跟踪:在 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply 的 System.ServiceModel.Channels.HttpInput.ParseIncomingMessage(Exception& requestException) 的 System.ServiceModel.Channels.HttpInput.ReadBufferedMessage(Stream inputStream)在 System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway , ProxyOperationRuntime 操作, Object[] ins, Object[] outs, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins,Object[] out) 在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) 在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

在 [0] 处重新抛出异常:在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 在 IBulkDataSvc.GetEmployeesData( Empower.ServiceRequest.EmployeeDataXML 中的 String BusinessPath、DateTime EffectiveDate、String TerminalName)(DateTime 时间、字符串终端)在 Empower.Empower.DownloadEmployeeList(String terminalName)

我在客户端的 Web 服务绑定配置如下(仅显示绑定),

    <bindings>
      <basicHttpBinding>
        <binding name="BulkDataSvcSoap">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Basic" />
          </security>
        </binding>
        <binding name="BulkDataSvcHttpsSoap">
          <security mode="Transport">
            <transport clientCredentialType="Basic" />
          </security>
        </binding>
      </basicHttpBinding>
      <netTcpBinding>
        <binding name="BulkDataSvcTcp">
          <security mode="None" />
        </binding>
      </netTcpBinding>
    </bindings>

我有点困惑它是从哪一端真正生成的以及它为什么生成?

我用谷歌搜索并没有很好的帮助。所以有人可以帮我解决这个难题。

4

1 回答 1

0

你有机会读到这个调用非 wcf 服务吗

此外,在某些情况下,如果您的请求带来的数据大于 Web 服务端指定的数据,那么您一定会得到这个。

于 2014-04-02T02:21:20.387 回答