이것은 모바일 응용 프로그램에 OData를 사용한 이후 가장 이상한 문제 중 하나입니다. 필자가 개발 한 OData 서버는 SQL Express 2008이 지원하며,이 조합은 지난 15 개월 동안 50 개의 다른 서버 및/또는 PC에 설치되었습니다. 50 대의 모든 서버는 대용량 데이터에 대해 일관된 기능으로 안정적으로 실행됩니다.OData HTTP400 시간 초과 오류
며칠 전 내 고객 중 한 명이 내 클라이언트 앱 (iOS7에서 실행 중임)에 데이터를 서버에 게시 할 때 이상한 오류가 발생했다는 사실을 알리는 연락을 받았습니다. 오류의 HTTP 코드는 400이고 오류 텍스트는 "작업을 완료 할 수 없습니다 (시간 초과 오류 400)"입니다. 내 첫 번째 질문은 : 왜 시간 초과 오류가 400 코드로 돌아가는 것입니까? 일반적으로 (방화벽 등으로 인해) 타임 아웃이 발생하면 100 배속입니다. 서버의 이벤트 로그에 문제가 발생했음을 나타내는 것은 없습니다. 내 자신의 로그 (SQL 데이터베이스에 저장) 오류를 보여줍니다 (어떤 Odd 서비스에 일반적인 예외 잡기 메서드를 사용하여 문제를 기록하기 때문에 이상합니다). 아직 모든 요청의 로깅을 추가하는 단계에 도달하지 못했습니다.
하나의 특정 데이터 세트를 게시 할 때만 오류가 발생합니다. 기기의 다른 모든 소식은 완벽하게 작동합니다. 클라이언트에 앱을 다시 설치하고 (모든 데이터 삭제) 오류가 발생한 데이터 세트를 다운로드합니다. 다운로드가 정상적으로 작동했습니다. 우리는 증분 변경에서 오류가 발생했을 때의 데이터를 복제하고 서버에 변경 사항을 게시 한 다음 결과를 관찰하기 위해 데이터를 변경하기 시작했습니다. 증분 변경의 대부분은 잘 작동하지만 특정 조합으로 인해 오류가 발생합니다. 증분 중 하나는 많은 양의 변경이 포함되어 있지만 글은 문제가되지 않지만 이후의 변경 (텍스트 필드에서 6 자 정도의 작은 문자 변경)으로 인해 오류가 발생합니다. 그리고 어떤 경우에는 이미 서버에 게시 된 객체를 변경해도 문제없이 작동합니다.
서비스 구성 요소를 서버에서 지우고 새로 설치합니다. 443이 다른 청취자가 문제를 일으키는 경우 TCP 포트를 이동했습니다. 나는 서버를 리셋했다. 이들 중 어느 것도 오류의 동작을 변경하지 않습니다.
내 마지막 도랑 솔루션은 IIS와 .NET Framework를 완전히 다시 설치하는 것이지만 내 서버가 아니기 때문에 분명히 이것을 피하고 싶습니다 ... 서버가 현재 위치에서 해외로 이동하므로 디버깅이 실제로 불가능합니다. 옵션. 누군가를 바라는 것은이 기괴한 '그렘린'의 근원을 진단하고 진단하기 위해 내가 진단 할 수있는 것에 대한 아이디어를 가지고 있습니다.
나는 해결책이 없지만 절망하지 말라고 말할 수 있습니다. [모든 것]에 대한 설명이 있습니다 (http://mina.naguib.ca/blog/2012/10/22/the-little-ssh-that-sometimes-couldnt.html) (귀하의 문제는 매우 유사하고 매우 다른 것처럼 보입니다) . 로그에서 아무 것도 볼 수 없다는 사실은 꽤 낮은 수준이지만 원격 장치에서 HTTP 오류가 발생했다는 사실은 높은 수준임을 암시합니다. 매우 긴 샷 : 경로에서 DPI를 수행하는 라우터는 무엇입니까? 모든 HTTP 프록시 또는 역 프록시? – tne