0

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> 

.

감사

편집

다음은 서비스를 호출 한 후 어떤 피들러 보여줍니다. . 피들러와

Fiddler Output 는 IE는 여분의 항목을 보여주지 않았다 https를 디코딩하도록 설정하지만, 크롬 나는 다음과 같은 출력을 얻을

Fiddler Output2

답변

1

오류 메시지가 말했듯이, "이 가 될 수있다 크로스 도메인 방식으로 서비스에 액세스하려고했기 때문에 ... "클라이언트에서 Fiddler과 같은 도구를 사용하여 서버의 실제 응답을 확인하십시오. 그러면 문제에 대한 자세한 정보를 얻을 수 있습니다.

+0

필자가 출력물을 볼 수 없도록 내 게시물을 편집했습니다. – Midimatt

+0

HTTPS 트래픽을 디코딩하도록 Fiddler에 명시 적으로 지시해야합니다 (도구 -> 피들러 옵션 -> HTTPS). 그렇지 않으면 HTTPS 요청이 표시되지 않습니다. – carlosfigueira

+0

나는 그것을 지금 설정했고 피들러에서 1 개의 추가 항목을 얻었고 그 안에 정보가 없습니다. – Midimatt

0

피들러에 표시된 것처럼 서비스에 대한 참조 파일에는 localhost : 444에 대한 포인터가 있습니다. 이는 일반적으로 두 솔루션이 동일한 솔루션에 있고 서비스 참조를 추가 할 때 발생합니다.

+0

웹 서비스는 https : // Localhost : 444에서 호스팅됩니다. Silverlight 응용 프로그램은 Https : // Localhost : 443에서 호스팅되므로 참조가 정확합니다. – Midimatt

0

내 솔루션의 frontEnd.Web 부분을 마우스 오른쪽 버튼으로 클릭하고 속성 및 웹 탭으로 이동하여 자동 포트 지정 옵션 대신 로컬 IIS 서버를 사용하도록 변경했습니다. 이것은 오류를 없앴습니다.