2

MS Dynamics CRM API를 사용하여 데이터를 얻습니다 (5000 개 이상의 레코드). 나는 데이터Dynamics CRM 원인 CommunicationException

EntityCollection resultSet = _orgServiceProxy.RetrieveMultiple(new FetchExpression(query)); 

언젠가 작동 시간과는 로그에서 예외가 발생 대부분의 시간, 나는이 긴 예외를 얻고을 얻기 위해 XML 기반 쿼리를 사용하고

.

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.Sockets.NetworkStream.Read (Byte [] 버퍼, Int32 오프셋, Int32 크기)에서 System.Net.FixedSizeReader.ReadPacket (Byte [] 버퍼, Int32 오프셋, Int32 개수) at System System.Net.Security._SslStream.StartReading (Byte [] 버퍼, Int32 오프셋, Int32 개수, AsyncProtocolRequest asyncRequest)에서 .Net.Security._SslStream.StartFrameHeader (Byte [] 버퍼, Int32 오프셋, Int32 개수, AsyncProtocolRequest asyncRequest) System.Net.PooledStream에서 System.Net.TlsStream.Read (Byte [] 버퍼, Int32 오프셋, Int32 크기)의 .Net.Security._SslStream.ProcessRead (Byte [] 버퍼, Int32 오프셋, Int32 개수, AsyncProtocolRequest asyncRequest) System.Net.Connection.SyncRead에서 읽기 (Byte [] 버퍼, Int32 오프셋, Int32 크기) HttpWebRequest 요청, 부울 userRetrievedStream, 보 olean probeRead) --- 내부 예외 스택 추적 끝 --- System.Net.HttpWebRequest.GetResponse()에서 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply (TimeSpan 시간 초과) --- 내부 예외 끝 스택 추적

왜 이런 일이 발생하는지 모르겠습니까?

답변

1

CRM 서비스는 한 요청에서 많은 데이터를 검색하지 않습니다.

페이징 쿠키를 사용하여 레코드 집합을 검색하는 것이 좋습니다. 문제를 해결하고 코드 성능을 향상시켜야합니다.

msdn here에서 유용한 자습서를 찾을 수 있습니다.

감사합니다,

는 Kévin

관련 문제