我正在尝试在硬盘驱动器本地存在的html文件中托管远程Silverlight小部件,但每当我打开html文件时,Silverlight内容都不会显示。如果我将文件移动到Web服务器然后通过http访问它,它可以很好地工作。我想出(或者至少我假设)小部件正在尝试回拨给Web服务器但由于SL 2+中的cross zone restrictions而失败了。我还看到一些用户在从本地文件调试时讨论遇到此问题的报告。我的问题是,我怎么能确定这是正在进行的问题/我可以使用哪些工具来验证我的假设?
此外,(完全清楚知道需要考虑安全性问题的提升)是否有任何方法可以将小部件调用的Web服务声明为安全(例如添加到受信任的站点) Silverlight能够在没有安全性异常的情况下执行调用的方式吗?
我正在讨论的小部件示例如下:
<object
type="application/x-silverlight-2"
data="data:application/x-silverlight-2,"
width="400" height="400">
<param name="minRuntimeVersion" value="3.0.40624.0" />
<param name="background" value="#141414" />
<param name="splashScreenSource"
value="http://memorabilia.hardrock.com/Widget/3.2009.1014.0/Splash.xaml" />
<param name="source"
value="http://memorabilia.hardrock.com/Widget/3.2009.1014.0/HardRock.Memorabilia.Silverlight.Widget.xap" />
<param name="enableHtmlAccess" value="true" />
<param name="initParams" value="item=034739" />
<a href="http://go.microsoft.com/fwlink/?linkid=149156&v=3.0.40624.0">
<img src="http://memorabilia.hardrock.com/Widget/3.2009.1014.0/Ping.gif?type=install&item=034739"
style="background:#141414
url(http://content.memorabilia.hardrock.com/Assets/Images/widget/034739.jpg)
no-repeat center;margin:0;padding:0;border:0;"
width="400" height="400" />
</a>
</object>
答案 0 :(得分:0)
这是违反交叉协议的问题 - 具有file://协议的页面无法使用http://协议访问资产。这还有助于保护您的计算机免受恶意Silverlight应用程序的访问。