2014-03-13 2 views
0

몇 가지 개별 웹 응용 프로그램으로 구분 된 새로운 ASP.NET 4 웹 API 서비스 집합이 있습니다. Web API 서비스 중 하나 ("중개자")는 요청을 처리하여 다른 서비스로 전달하고 응답을 JSON을 사용하여 전달합니다. 때로는 응답을 가져와 하나 이상의 다른 서비스의 응답과 병합하여 병합 된 결과를 클라이언트에 다시 보내는 경우가 있습니다. 준비 과정에서 완벽하게 작동하는 서비스가 하나 있습니다. 프로덕션에서는 그렇지 않습니다. 이 경우 중재자는 클라이언트 요청을 가져 와서 다른 하나의 서비스로 전달하고 응답을 클라이언트로 바로 전달해야합니다. 두 번째 서비스를 직접 호출하면 테스트 요청에 문제가 없습니다. 나는 제외하고 그것을 밖으로 폭탄 중재자를 통해 호출한다면 : - 60 바이트, 또는 60킬로바이트연결된 웹 API 서비스가 제대로 통신하지 않습니다.

"The wait operation timed out", "ExceptionType": "System.ComponentModel.Win32Exception"

는 응답의 크기가 일 무슨 상관하지 않는 것 같습니다. 다른 부분은 일부 요청이 성공한 것입니다. 차이점은 요청에있는 것만 같습니다. 기본 매개 변수를 하나의 값으로 설정하여 요청을 보내면 다시 정상적으로 돌아옵니다. 다른 값으로 설정하면 시간이 초과됩니다. 이 작업은 일관되게 수행되지만 중재자 서비스에만 적용됩니다. 2 차 서비스는 각 매개 변수 값에 대해 올바른 결과 세트를 리턴합니다. 시간 초과를 트리거하는 매개 변수 값에 대한 결과 세트는 성공한 값보다 작습니다.

그래서 나는 실제로 그것을 얻지 못합니다. HttpClient 클래스에서 일어나는 일이 있습니까? 예를 들어, 또는 다른 ASP.NET 라이브러리에서이를 인식하지 못하는 문자에 대한 유효성을 검사 할 수 있습니까? 한 서비스가 중재자 서비스를 질식시키는 동일한 데이터로 작동하기 때문에 응답이 "양호"한지 테스트하는 방법조차 모르겠습니다.

답변

0

이 문제는 해당 프로덕션 데이터베이스 테이블에 인덱스를 추가하여 해결되었습니다. 우리는 여전히 "왜?" 그러나 특정 열 이름에 대한 쿼리가 테이블에서 매우 유사한 데이터 집합과 함께 스테이징보다 프로덕션에서 4 배 더 오래 걸리는 것으로 나타났습니다.

관련 문제