Flex 및 .NET 2.0 웹 서비스, 다른 도메인에서 액세스 할 수있는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/809356

문제

Application Server 유형이 없음으로 Flex Builder에서 프로젝트를 만들었습니다.

디버그 할 때 사이트에있는 로컬 컴퓨터에서 웹 서비스에 액세스 할 수 있습니다. http://mysite.com/ws/ws.aspx?wsdl

flex 앱을 mysite.com/myapp.html에 업로드하면 훌륭하게 작동합니다.

그러나 myapp.mysite.com/myapp.html에 업로드하면 웹 서비스에 액세스하지 못합니다.

내가 무엇을 놓치고 있는지 아는 사람 있나요?

감사

추신 ws는 vb.net으로 생성되었으며, .NET로 설정된 Application Server 유형이있는 Flex 프로젝트를 만들 때 로컬 컴퓨터에서 WS에 액세스하지 않습니다.

이것은 내 crossdomain.xml 파일입니다

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <site-control permitted-cross-domain-policies="all"/>
  <allow-access-from domain="*"/>
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

** 내 추측은 플렉스 문제가 아니지만 .NET 보안 기능이라는 것입니다. 구성 방법을 모르겠습니다.

.NET은 앱이 자체 도메인 외부에서 앱을 사용할 수 없습니다. **

도움이 되었습니까?

해결책

기본적으로 Flex는 원격 호스트에서 웹 서비스에 액세스 할 수 없습니다. 이것은 Flex의 보안 기능입니다. Flex 앱이 배포되었으므로 myapp.mysite.com 서비스와는 다른 호스트 아래에 있습니다 mysite.com.

당신은 추가 할 수 있습니다 crossdomain.xml Flex가 Mysite.com에 서비스가 다른 도메인에서 액세스 할 수 있는지 확인합니다. 그만큼 crossdomain.xml 파일은 도메인의 웹 루트에 있어야합니다 (mysite.com/crossdomain.xml). 디버깅 사용을 허용하기 위해 다음 내용을 사용했습니다. 모든 사용을 허용하므로 생산에서의 사용을 제한하려면 나중에 수정해야합니다.

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
    "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
   <allow-access-from domain="*" to-ports="*" />
   <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

더 많은 정보 플렉스 문서화, 특히 지식베이스 기사.

다른 팁

변조 데이터로 작성된 요청을 확인하십시오 (Firefox로 확장). 앱이 CrossDomain.xml 파일을 찾도록 확인하십시오. 경로가 꺼져 있으면 문제가됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top