도메인에서 Silverlight Xap 파일에 액세스하려면 어떻게합니까?
-
20-08-2019 - |
문제
한 하위 도메인에있는 실버 라이트 애플리케이션을 다른 하위 도메인의 웹 페이지에 추가하려고합니다. 어떤 이유로이 평원은 작동하지 않습니다 ... 내 실버 라이트 애플리케이션은 한 페이지에와 같이로드됩니다. 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>