Silverlight 응용 프로그램은 현재 IIS에서 호스팅되며 HTTPS 만 사용하도록 설정됩니다.IIS에서 호스팅되는 Silverlight에 대해 도메인 간 액세스 정책이 작동하지 않습니다.
silverlight 웹 프로젝트는 IIS 웹 사이트의 루트이며 webservices 프로젝트는/Services에 매핑 된 별도의 웹 응용 프로그램입니다.
나는 "
"을 사용하여 "와"에 의해 내 사이트로 이동할 수 있지만 두 번째 옵션을 사용하는 경우 사이트는 잘로드하지만 내 서비스에 액세스하려고 할 때이 오류가 발생합니다. URI 'https://localhost/Services/Services/Authentication.svc'에 요청을하는 동안
오류
가 발생했습니다. 올바른 도메인 간 정책이 이 아니거나 인 SOAP 서비스에 적합하지 않은 정책을 사용하여 교차 도메인 방식으로 서비스에 액세스하려고 시도했을 수 있습니다. 은 도메인 간 정책 파일을 게시하고 SOAP 관련 HTTP 헤더를 보낼 수 있도록 서비스의 소유자에게 문의해야합니다. 이 오류는 또한 InternalsVisibleToAttribute가 나는 또한 내 웹 서비스 응용 프로그램과의 루트의 crossdomain.xml과 clientaccesspolicy.xml 파일이
속성 사용하지 않고 웹 서비스에 프록시를 내부 형식을 사용하여 발생할 수 있습니다 Silverlight 웹 프로젝트의 루트 내에 있습니다.
의 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="https://*" secure="true" />
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
clientaccesspolicy.xml 나는 문제가 무엇인지 정말 모르겠어요
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from>
<domain uri="https://*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
.
감사
편집
다음은 서비스를 호출 한 후 어떤 피들러 보여줍니다. . 피들러와
는 IE는 여분의 항목을 보여주지 않았다 https를 디코딩하도록 설정하지만, 크롬 나는 다음과 같은 출력을 얻을
필자가 출력물을 볼 수 없도록 내 게시물을 편집했습니다. – Midimatt
HTTPS 트래픽을 디코딩하도록 Fiddler에 명시 적으로 지시해야합니다 (도구 -> 피들러 옵션 -> HTTPS). 그렇지 않으면 HTTPS 요청이 표시되지 않습니다. – carlosfigueira
나는 그것을 지금 설정했고 피들러에서 1 개의 추가 항목을 얻었고 그 안에 정보가 없습니다. – Midimatt