从本地文件系统托管Silverlight小部件

时间:2010-01-08 22:01:38

标签: silverlight

我正在尝试在硬盘驱动器本地存在的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>

1 个答案:

答案 0 :(得分:0)

这是违反交叉协议的问题 - 具有file://协议的页面无法使用http://协议访问资产。这还有助于保护您的计算机免受恶意Silverlight应用程序的访问。