2014-04-11 1 views
0

우리는 WCF 생성 백엔드를 사용하여 클라이언트 용 Android 및 iOS 애플리케이션을 설계했습니다.Android 앱이 WCF 웹 서비스와 무작위로 연결을 끊습니다.

특정 지리적 위치에있는 사용자는 약속을 체크인 할 수있는 방법이 있습니다.

두 앱 모두 서버를 찾고 데이터를 가져올 수 있지만 Android 애플리케이션은 약 50 %의 시간 동안 작동합니다 (iOS 버전은 100 % 작동). 나는 Wifi와 Cellular를 시도해 보았고 동일한 결과를 얻었다.

가장 큰 문제는 문제가 클라이언트 또는 서버와 관련이 있는지 또는 어떻게 처리해야합니까?

나는 그것이 닫히지 않은 httpURLConnection 때문일 수 있다는 것을 읽었지 만 지금은 내 단서 만 읽었습니다.

도와주세요!

감사

항상 아이폰 OS 안드로이드와의 시간의 절반을 작동하기 때문에

답변

0

는, 문제는 내 의견에 의해서만 네트워크 문제가 될 수 있습니다. 일부 네트워크 환경과 일부 장치 또는 일부 안드로이드 자바 버전의 장치에서만 발생합니다. 나는 너가 아무것도 할 수 없을 것이라고 생각한다. 이러한 문제가 발생하기 시작하면서 네트워크 프로그래밍 및 CAP 이론의 오류에 대한 간단한 사실에 항상 부딪 혔습니다. 네트워크는 신뢰할 만합니다. 따라서 네트워크는 신뢰할 수 없으며 솔루션에서 고려해야합니다.

http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing http://en.wikipedia.org/wiki/CAP_theorem

그것은이 문제가 가끔 성공 요청하지만 응답 문제로도 얻을 수 있음을 수 있습니다. 위에서와 거의 동일한 네트워크 장애 문제와 가능한 시간 초과 예외 등을 처리하고 서버와 클라이언트에서 적절하게 처리하는 것입니다. 따라서 submittingSomePayment와 같은 메소드를 사용하는 경우 일반 WCF 메소드를 사용하지 말고 대기열에 메시지를 저장하고 처리 한 다음 추가 결과를 확인하는 엔터프라이즈 서비스 버스를 사용하십시오. 예를 들어 CQRS 패턴을 참조하십시오.

http://msdn.microsoft.com/en-us/library/jj591573.aspx

하지 매우 도움이, 나는 알고있다. 그러나 그것에 대한 가능한 대답과 생각. 왜냐하면 그것은 나 역시 짜증나게했기 때문이다. 그래서 당신은 그것에 대해 아무 것도 할 수 없을 것입니다. (네트워크 문제를 스스로 처리하는 최종 사용자를 제외하고).

내부 WCF 동작을 제외하기 위해 WCF 서비스 메서드 호출의 핵심 시작 부분에 요청을 기록하여 추측을 코드의 문제로 제외합니다. 서버 및 클라이언트에서 가능한 모든 로깅은 문제가 코드에 있다고 확신 할 수있는 경우에 대비할 수있는 방법입니다. 또한 모든 안드로이드 장치 (LG, ... 등) 또는 특정 Java 버전에서만이 현상이 나타납니다.