2009-09-29 3 views
3

나는 서버에 요청을 할 HTTPService를 클래스를 사용플렉스 : HTTP 요청 오류 # 플렉스 3 응용 프로그램에서 2032

var http:HTTPService = new HTTPService(); 
http.method = 'POST'; 
http.url = hostUrl; 
http.resultFormat = 'e4x'; 
http.addEventListener(ResultEvent.RESULT, ...); 
http.addEventListener(FaultEvent.FAULT, ...); 
http.send(params); 

응용 프로그램은 혜성 아키텍처를 가지고있다. 따라서 장기간 실행되는 요청을 만듭니다. 이 요청에 대한 응답을 기다리는 동안 다른 요청을 동시에 수행 할 수 있습니다.

대부분의 경우 응용 프로그램이 작동합니다. 하지만 때때로 일부 클라이언트는 장기 실행 요청을 실행하는 HTTP 요청 오류를 수신합니다.

faultCode:Server.Error.Request 
faultString:'HTTP request error' 
faultDetail:'Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"]. URL: http://example.com/ws' 

사용자의 브라우저에 따라 다름이 있습니다.

아이디어가 있으십니까?

답변

1

HttpRequest에 더 긴 (3-4K!) 매개 변수를 보냈을 때 동일한 문제가 발생했습니다. 작은 것들을 보내 자마자 그것은 새로 고침, 재 장전 또는 아무것도하지 않고 작동했습니다. 나는 당신이 보낼 수있는 매개 변수의 길이의 클라이언트 측 또는 웹 서버 측에 한계가 있는지는 모르지만, 이것이 문제를 야기합니다.
url limitations may cause it

1

이 오류는 매우 일반적인 나타나고 좀 더 정보를 수집하기 위해 노력하고 문제에 관한 그것을 공유 제안했다.

  • This post와 비슷한 상황이 나타날 수 있습니다.
  • This post은 도움이 될만한 디버깅 정보를 찾는 데 도움이 될 수 있습니다.
  • 영향을받는 클라이언트는 무엇입니까?
  • Charles, Wireshark 등을 사용하여 HTTP 상태 코드 또는 전송되는 트래픽을 캡처 할 수 있습니까? flash.events.HTTPStatusEvent.HTTP_STATUS
    당신에게 잘못 무슨 일이 일어나고 있는지에 대한 좀 더 많은 정보를 줄 수 있음을 사용하여 요청의 HTTP-상태를 듣고
1

보십시오.

+0

또한 flash.events.HTTPStatusEvent.HTTP_RESPONSE_STATUS 당신이 공기에있어입니다 시도 –

1

나는 본질적으로 같은 주제에 다른 질문을 열어 가고 있었다, 그러나 나는이 대답없는 질문은 파악

더 이상 1. 나는 우리가 Flex 어플리케이션의 일부 사용자로부터 유사한 간헐적 인 문제를 얻을이지만,와 약간 다른 증상. 내가 제공 할 수있는 모든 정보는 다음과 같습니다.

  1. 짧은 (10ms) 요청에서도 발생합니다.
  2. 임의로 발생하는 것으로 보입니다.
  3. SSL을 통한 연결입니다.
  4. IE 사용자에게만 발생하며 FireFox를 사용하는 사용자에게는 발생하지 않습니다.
  5. 일단 발생하면 사용자는 IE를 종료하고 다시 시작해야한다고 알립니다 (일부 사용자는 재부팅해야한다고 말하지만 IE 재시작보다 덜 할 것으로 생각됩니다). 몇 분 정도 기다려야 재설정되는 것 같습니다.
  6. 나머지 사용자 인터넷 연결에는 영향을 미치지 않는 것처럼 보이며 다른 IE 창을 계속 사용할 수 있습니다.
  7. 일단 발생하면 Flex 어플리케이션의 HTTPService 요청이 작동하지 않는 것처럼 보입니다.
  8. 작은 사용자 집합에 대해서만 (분명히) 발생합니다. 처음에는 이 메인 서버와의 물리적 거리로 인해 보였지만, 더 이상 이 필요하지는 않습니다 (연결 품질 일 수도 있음).
  9. 사용자가 실행중인 Adobe Flash의 버전이 확실하지 않습니다. 코드는 Adobe Flex 3.4 (linux)로 작성되었습니다.
  10. 응용 프로그램은 문제를 재현 할 수는 없지만 병렬로 많은 요청을 처리합니다.
  11. 몇 분 후에 응용 프로그램으로 돌아온 후에이 오류가 발생한다고 사용자가 제안합니다.
  12. 서버 로그에 관련 서버 측 요청 항목이없는 것으로 나타나며 요청이 서버에 도달하지 않을 가능성이 있음을 암시합니다 (클라이언트를 떠나지 않을 수도 있음).
  13. 서버는 관련 캐시 헤더가있는 모든 요청에 ​​응답하여 IE 캐싱을 시작합니다.

현재 해결 방법은 사용자가 FireFox에서 응용 프로그램을 실행하도록 요청하는 것입니다.

HTTP Status Code: null 
Fault Code: Server.Error.Request 
Fault Error ID: null 
Fault Detail: Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"]. URL: https://my.server/url 
Fault String: HTTP request error 
Fault Name: Error 
Fault Message: faultCode:Server.Error.Request faultString:'HTTP request error' faultDetail:'Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"]. URL: https://my.server/url' 
Root Cause: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"] 

많은 사람들이 오류 2032, 몇도 만 IE에서 간헐적 인 오류를 언급 언급했지만, 거기에는 솔루션의 언급 : 오류의

전체 덤프는 없다. 내가 이것을 찾으면 여기서 내 게시물을 업데이트 할 것입니다.

Update는이 발생으로 사용자에게 이야기 한 후

, 우리는 다음을 발견 :

  1. IE에서 새 탭을 열고 잘 같은 플렉스 응용 프로그램을로드 할 수 사용자 - 그래서 아무 인터넷 연결 문제.
  2. 오류가 발생한 플렉스 앱을 사용하는 탭에서 사용자가 google.com을로드 할 수 있으므로 해당 탭과 관련된 연결 문제가없는 것으로 보입니다.
  3. 사용자는 깨진 응용 프로그램이있는 탭의 주소를 다른 탭에 복사 할 수 있으며 플렉스 응용 프로그램이로드됩니다.
  4. 사용자는 flex 앱이 고장난 탭에서 google.com을로드 한 후 flex 앱 URL을 다시 복사하고 즉시 문제를 얻을 수 있습니다.

내 특정 응용 프로그램에서 내 flex 응용 프로그램은 중단 후 해당 URL에 대한 더 이상의 요청이 허용되지 않는 정도까지 플래시 플러그인/VM을 손상시키는 것으로 나타납니다.

나는 완전히 완전히 혼란 스럽다. 나는 사용자가 FireFox를 사용하거나 Air 패키지로 응용 프로그램을 포장 할 것을 제안하고있다.

0

Air 앱에서 정확한 문제가 발생했습니다. 결국 우연히 urlrequest.idleTimeout을 10으로 설정했음을 알았습니다.이 시간 초과는 실제로 밀리 초이며 내 웹 서버는 로컬이므로 내 로컬 서버에 아무 매개 변수도 보내지 않으면 작동합니다. 물론 요청과 함께 매개 변수를 보낼 때마다 내 스크립트가 데이터를 실행하고 반환하는 데 10ms 이상 걸렸으므로 실패합니다.

느린 로딩 스크립트에주의해야 할 수도 있습니다. 일부 정적 출력을 강제로 디버그 한 다음 해당 페이지가 더 이상 실행되지 않게 할 수 있습니다. 내 PHP 페이지에 넣어 :

<?php 
echo "hello=hi"; 
die(); 
?> 

또한 샌드 박스 제한 내에서 디버깅해야합니다. 자체 서명 된 SSL 인증서를 사용하고 있으며 내 로컬 테스트 웹 서버에 연결할 때 많은 경고가 있습니다.

희망 하시겠습니까?

1

여기에서는 Flash (Web - Flex 4.1 SDK) 응용 프로그램과 다소 문제가있었습니다. 우리가 좁혀진 솔루션의 거대한 구색을 시도한 후에 우리는 마침내 새로 설치된 머신을 포함하여 모든 시스템에 대해 꽤 안정적으로 작동하는 솔루션을 찾았습니다.

. Flex 사전 초기화 단계에서 응용 프로그램의 루트 (또는 스테이지)에 전역 이벤트 리스너를 추가합니다.

IOErrorEvent.IO_ERROR 
IOErrorEvent.NETWORK_ERROR 
HTTPStatusEvent.HTTP_STATUS 
ErrorEvent.ERROR 
SecurityErrorEvent.SECURITY_ERROR 

는 오류에게 붙잡혀있는 경우 - event.preventDefault();

B한다. 다음과 같은 오류를 앱에서 사용되는 모든 로더에 이벤트 리스너를 추가 :

IOErrorEvent.IO_ERROR 
SecurityErrorEvent.SECURITY_ERROR 
HTTPStatusEvent.HTTP_STATUS 

*

외부 인터페이스 호출로 다시 떨어지는처럼 복구를 시도 ...

C을. bin-release 폴더의 모든 SWZ 파일을 SWF 파일과 함께 응용 프로그램을 제공하는 데 사용하는 서버의 같은 경로에 배치하십시오. 내 경우에는 이 필요한 파일은 다음과 같습니다 : 응용 프로그램이 파일을 다운로드하려고 할 때

sparkskins_4.5.1.21328.swz 
spark_4.5.1.21328.swz 
textLayout_2.0.0.232.swz 
rpc_4.5.1.21328.swz 
osmf_1.0.0.16316.swz 
framework_4.5.1.21328.swz 

* 내가 페이지에서 발생하는 오류보고 크롬 개발자 콘솔을 사용하고 404의 체인을 발견이 발견.

d. allow http request xml 태그가 포함 된 crossdomain.xml 정책 파일을 올바르게 구성해야합니다.

<allow-http-request-headers-from domain="*" headers="*"/> 

필요에 따라 *를 대치하십시오.

건배

관련 문제