SilverLight WCF서비스 작성

  

1.

프로젝트 생성 및 작성과정은 동일함

2.

솔루션 목록에서 Web.config 열기

 

3.

Endpoint binding 설정을 찾아서

 

4.

basicHttpBinding 으로 수정

 

 

 

SliverLight 에서 지원하는 프로토콜

Silverlight 2.0에서는 WS-I Basic Profile 1.0 따르는 대부분의 서비스를 지원합니다. 특히 HTTP 통한 SOAP 1.1 지원됩니다. 그러나 다른 버전의 SOAP 대부분의 다른 서비스(WS-*) 프로토콜(: WS-Addressing) 지원되지 않습니다. , WCF(Windows Communication Foundation) 서비스의 경우 BasicHttpBinding 사용하도록 구성해야 합니다. 그리고 WCF(Windows Communication Foundation) 서비스에 대한 기본 바인딩이 다른 경우가 종종 있습니다. Silverlight 클라이언트에서 서비스를 사용하려면 basicHttpBinding 최소한 하나 이상의 끝점이 있어야 합니다. – by MSDN

 

CrossDomain 문제

 

다른 도메인 상의 리소스를 사용하려고 할 때 별도의 정책파일을 게시하지 않으면 발생하는 문제로서 silverlight 보안 정책에 의해 검증되지 않은 Acess를 차단함으로써 생기는 문제.

 

해결방법 정책파일 게시

1.     두 가지 정책파일

A.     서비스가 Hosting되는 도메인의 루트에 clientaccesspolicy.xml 파일을 배치하여 도메인 액세스가 가능하도록 서비스를 구성

B.      서비스가 Hosting 되는 도메인의 루트에 올바른 crossdomain.xml 파일을 배치. 파일은 전체 도메인을 public 으로 표시해야 .

 

 

 

clientaccesspolicy.xml 사용법

1.

<?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>

Domain uri – 접속 허용할 도메인

Ex-<domain uri="http://aaa.aa"/>

 

resource path – 접속 허용할 하위디렉토리

include-subpaths – 하위 디렉토리 포함 여부

2

서비스가 호스팅 되는 도메인의 루트에 clientaccesspolicy.xml 파일을 저장.

 

 

crossdomain.xml 사용법

1

<?xml version="1.0"?>

<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>

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

</cross-domain-policy>

모든 도메인을 허용할 경우에만 사용가능 함

2

서비스가 호스팅 되는 도메인의 루트에 clientaccesspolicy.xml 파일을 저장.

 

 

 

 

 

Root폴더 확인법

 

제어판-인터넷정보서비스-웹사이트-기본웹사이트-속성-홈디렉토리

 

Posted by ... XJAPAN