소프트웨어/SliverLight

Silverlight 2.0 beta2에서 바뀐 크로스 도메인 정책 (clientaccesspolicy.xml)

falconer 2008. 6. 20. 08:40
Silverlight에서 크로스 도메인 서비스(Cross Domain Services)를 하기 위해서는
요청하는 해당 디렉토리에 clientacesspolicy.xml 파일이 존재하여야 합니다.

clientaccesspolicy.xml 파일은 Silverlight 2.0 beta1에서는 아래와 같은 형식이었습니다.

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

그러나 똑같은 파일을 beta2에서 사용하시면  WebClient혹은 웹 서비스 참조로 사용할 경우 404 Not Found exception이 발생할 수도 있습니다.

사실 다른 구체적인 Exception이 뿌려지면 디버깅할 때 좀더 편할텐데 하필이면 404가 나오는지 의문입니다.

beta2에서는 아래와 같이 allow-from 엘레먼트에 http-request-headers 어트리뷰트를 "*" 라고 명시적으로 지정하여야 합니다.
<?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>


출처 : http://hoons.kr/MetaBlog/Contents.aspx?blogIdx=1428