문제

한 하위 도메인에있는 실버 라이트 애플리케이션을 다른 하위 도메인의 웹 페이지에 추가하려고합니다. 어떤 이유로이 평원은 작동하지 않습니다 ... 내 실버 라이트 애플리케이션은 한 페이지에와 같이로드됩니다. http://suba.domain.com/somepage.html:

<div id="silverlightControlHost">
    <object data="data:application/x-silverlight-2," type="application/x-silverlight-2"
        width="800px" height="600px">
        <param name="source" value="http://subB.domain.com/SilverlightApp.xap" />
        <param name="onerror" value="onSilverlightError" />
        <param name="background" value="white" />
        <param name="minRuntimeVersion" value="2.0.31005.0" />
        <param name="autoUpgrade" value="true" />
        <param name="enableHtmlAccess" value="true" />
        <a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">
            <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight"
                style="border-style: none" />
        </a>
    </object>
    <iframe style='visibility: hidden; height: 0; width: 0; border: 0px'></iframe>
</div>

silverlightapp.xap을 suba.domain.com으로 이동하면 완벽하게로드됩니다. 도메인에서 Xap 파일에 액세스하는 데 어떤 단계가 필요합니까 ?? 나는 이것을 알아 내려고 인터넷을 긁어 내고 아무데도 없어지는 것처럼 보인다.

감사!!

도움이 되었습니까?

해결책

Silverlight는 .xap 파일 크로스 도메인을 요청하면 컨텐츠 유형은 다음과 같습니다. Application/X-Silverlight-App. 또한, 당신은 필요합니다 크로스 도메인 정책 파일 다른 도메인에서. GL

다른 팁

이 같은 문제가 있고 iframes를 사용하고 싶지 않은 다른 사람들을 돕기 위해서는 이것을 참조하십시오. 링크, 내 문제를 해결 했으므로. 저자는 Silverlight 2를 언급하고 있지만 Silverlight 3에서 내 문제를 해결했습니다. 링크가 다운된다면, 내가해야 할 두 가지가 있습니다.

- Silverlight 앱에서 AppManifest.xml을 편집하여 다음을 추가하십시오.

<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
ExternalCallersFromCrossDomain="ScriptableOnly">

- Silverlight 앱에서 HTMLPAGE를 사용하는 경우 (예 : QueryString을 호스팅 페이지로 읽을 때) 다음을 추가해야합니다.

<param name="enableHtmlAccess" value="true" />

호스팅 페이지의 Silverlight 객체에.

위의 보안 영향이 있으며, 도움이 될 수는 없지만 이것이 Microsoft 가이 정보를 전파하기 위해 벗어나지 않는 이유라고 생각합니다. 그러나 내 경우에는 스크립트 가능한 Silverlight 요소가 없으며 Silverlight 앱을 작성한 이후로 Silverlight 앱에 액세스 할 수있는 호스팅 페이지에 문제가 없습니다.

이것을 연구하는 동안, 나는이 문제와 해당 솔루션이 별도의 문제와 혼동되는 것을 알았습니다. Silverlight Xap의 문제는 도메인 경계에서 WCF 서비스에 액세스하는 문제가 있습니다. 이 문제에는 WCF 서비스를 호스팅하는 웹 사이트의 루트에있는 ClientAccessPolicy.xml 파일이 필요합니다.

따라서 첫 번째 사이트에 두 번째 사이트에서 XAP 파일에 액세스 할 수 있습니다.이 사이트는 3 번째 사이트의 데이터 서비스에 액세스하여 유연성과 재사용을 최대한 활용할 수 있습니다.

실버 라이트 객체가 포함 된 .xap 옆에 간단한 HTML 파일을 만들고 iframe에서 이에 액세스 할 수 있습니다. 이것이 방법입니다 http://silverlight.live.com/ 예를 들어이 문제를 수정했습니다.

suba.domain.com의 메인 페이지에서 다른 도메인에 HTML 페이지를 표시하는 iframe을 추가하십시오.

<iframe src="http://subB.domain.com/SilverlightApp.html" 
        scrolling="no" 
        frameborder="0" 
        style="width:800px;height:600px">
</iframe>

subbdomain.com의 Silverlightapp.html은 다음과 같은 것을 볼 수 있습니다.

<html>
  <body>
    <div id="silverlightControlHost">    
      <object data="data:application/x-silverlight-2," 
              type="application/x-silverlight-2"        
              width="800px" height="600px">        
        <param name="source" value="http://subB.domain.com/SilverlightApp.xap" />
        <param name="onerror" value="onSilverlightError" />
        <param name="background" value="white" />
        <param name="minRuntimeVersion" value="2.0.31005.0" />
        <param name="autoUpgrade" value="true" />
        <param name="enableHtmlAccess" value="true" />
        <a href="http://go.microsoft.com/fwlink/?LinkID=124807" 
           style="text-decoration: none;">            
          <img src="http://go.microsoft.com/fwlink/?LinkId=108181" 
               alt="Get Microsoft Silverlight"
               style="border-style: none" />
        </a>
      </object>
      <iframe style='visibility: hidden; height: 0; width: 0; border: 0px'>
      </iframe>
    </div>
  </body>
</html>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top