2009-10-29 3 views
0

그래서 아래 나열된 xml 파일을 사용하고 있습니다. 둘 다 다른 웹 서버 (방화벽 뒤)에있는 IIS 호스팅 웹 서비스의 루트에 존재합니다. 웹 서비스는 JSON 문자열을 반환하는 간단한 POX 서비스입니다.Silverlight 3.0의 내 상호 도메인 정책에 여전히 문제가 있습니다

또한 로컬 컴퓨터에서 프로젝트를 실행하는 cassini에서이 서비스에 액세스하려고합니다 (테스트 해보기 위해). 브라우저에서 JSON을 볼 수 있지만 동일한 URI (4004가 표시된 오류 코드)를 사용하여 HTTP GET을 시도하면 실버 라이트에서 보안 오류가 발생합니다.

간단한 내용은 무엇입니까?

clientaccesspolicy.xml

<?xml version="1.0" encoding="utf-8"?> 
<access-policy> 
    <cross-domain-access> 
    <policy> 
     <allow-from http-request-headers="*"> 
     <domain uri="*"/> 
     </allow-from> 
     <grant-to> 
     <resource path="/" include-subpaths="true"/> 
     </grant-to> 
    </policy> 
    </cross-domain-access> 
</access-policy> 

crossdomain.xml에

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
    <site-control permitted-cross-domain-policies="master-only" /> 
    <allow-access-from domain="*" secure="true" /> 
</cross-domain-policy> 
+0

404를 의미합니까? 응답 코드 4004가 없습니다. –

답변

2

크로스 도메인 정책 파일에 대한 요청이 가리키는 주소를보기 위해 피들러와 같은 도구를 사용하고 있습니까? 그것은 대개 내 첫 번째 수표입니다; 정책 파일을 찾지 못하면 내가 있어야 할 곳을 알게되고, 그럴 경우 대체로 다른 곳을 볼 필요가 있습니다.

귀하의 clientaccesspolicy.xml은 저의 참고 자료와 동일합니다. 거기에 아무런 문제가 없어야합니다.

+0

나는 Fiddler를 실행 시켰고 그 서비스에 액세스 할 수있는 권한이 없다는 것을 알아 차 렸습니다. 그래서 익명 액세스를 가능하게하고 작동했습니다! 분명한 대답을 주셔서 감사합니다 (피들러 사람을 사용하십시오)! –

0

당신이 404 응답 코드를 얻을 경우, 유일한 이유는 서버 리소스를 찾을 수 없습니다가 될 수 있습 를 찾고 있습니다. 그럼 올바른 URL을 사용하고 있다는 것을 절대적으로 확신합니까?

+0

오류는 404가 아니며 대신 4004 코드를 표시하는 보안 오류입니다 (위 그림 참조). 이 보안 오류는 다른 서버에 서비스를 푸시하기 전에 잘 작동했기 때문에 도메인 간 액세스로 인해 발생한다고 가정합니다. –

+0

그러면 누가 오류를 생성합니까? 실버 라이트 클라이언트? 더 자세한 오류 정보가 있습니까? –

관련 문제