我正在使用从它获得数据(超过5000条记录)。
我使用基于XML的查询来获取数据。
EntityCollection resultSet = _orgServiceProxy.RetrieveMultiple(new FetchExpression(query));有时候它可以工作,大多数时候它会抛出异常,从日志中,我得到了这个长异常。
接收到对https://orgno.api.crm.dynamics.com/XRMServices/2011/Organization.svc的HTTP响应时发生了错误。这可能是因为服务端点绑定没有使用HTTP协议。这也可能是由于服务器中止HTTP请求上下文(可能是由于服务关闭)造成的。有关详细信息,请参阅服务器日志。-> System.ServiceModel.CommunicationException:在接收https://orgno.api.crm.dynamics.com/XRMServices/2011/Organization.svc的HTTP响应时发生了错误。这可能是因为服务端点绑定没有使用HTTP协议。这也可能是由于服务器中止HTTP请求上下文(可能是由于服务关闭)造成的。有关详细信息,请参阅服务器日志。-> System.Net.WebException:基础连接已关闭:在接收时发生意外错误。-> System.IO.IOException:无法从传输连接读取数据:现有连接被远程主机强制关闭。-> System.Net.Sockets.SocketException:远程主机在System.Net.Sockets.NetworkStream.Read(Byte[]缓冲器、Int32偏移量、Int32大小)-内部异常堆栈跟踪-在System.Net.FixedSizeReader.ReadPacket(Byte[]缓冲区、Int32偏移量、Int32计数)的System.Net.Sockets.NetworkStream.Read(Byte[]缓冲区、Int32偏移量、Int32大小)处强制关闭现有连接(Byte[]缓冲区、Int32偏移量、Int32计数)、Int32偏移量、Int32计数,System.Net.Security._SslStream.StartReading(Byte[]缓冲区的AsyncProtocolRequest asyncRequest,System.Net.Security._SslStream.ProcessRead(Byte[]缓冲区的Int32偏移量,Int32计数,AsyncProtocolRequest asyncRequest),System.Net.TlsStream.Read(Byte[]缓冲区,Int32偏移量,Int32大小)的Int32偏移量,Int32计数,AsyncProtocolRequest asyncRequest(System.Net.TlsStream.Read(Byte[]缓冲区,Int32偏移量,Int32大小),#en22 20#(请求,布尔,布尔值System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan probeRead) -内部异常堆栈跟踪的结束
我不知道为什么会这样?
发布于 2012-08-02 09:14:57
CRM服务根本不喜欢在一个请求中检索大量数据。
我建议您使用分页cookie来按集检索记录。它应该解决您的问题并提高代码的性能。
您可以在msdn 这里上找到一个很好的教程。
致以敬意,
凯文
https://stackoverflow.com/questions/11771519
复制相似问题