我正在使用一个 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>
我有点困惑它是从哪一端真正生成的以及它为什么生成?
我用谷歌搜索并没有很好的帮助。所以有人可以帮我解决这个难题。