Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从本地文件系统托管Silverlight小部件_Silverlight - Fatal编程技术网

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

从本地文件系统托管Silverlight小部件,silverlight,Silverlight,我试图在硬盘上本地存在的html文件中托管一个远程Silverlight小部件,但每当我打开html文件时,Silverlight内容都不会显示。如果我将文件移动到web服务器上,然后通过http访问它,它就可以完美地工作。我发现(或者至少我假设)小部件正试图回拨web服务器,但由于SL 2+中的错误,它失败了。我还看到一些来自用户的报告,其中谈到在从本地文件进行调试时遇到此问题。我的问题是,我如何确定这就是问题所在/我可以使用什么工具来验证我的假设 此外,(我完全清楚地知道需要考虑特权的提升安

我试图在硬盘上本地存在的html文件中托管一个远程Silverlight小部件,但每当我打开html文件时,Silverlight内容都不会显示。如果我将文件移动到web服务器上,然后通过http访问它,它就可以完美地工作。我发现(或者至少我假设)小部件正试图回拨web服务器,但由于SL 2+中的错误,它失败了。我还看到一些来自用户的报告,其中谈到在从本地文件进行调试时遇到此问题。我的问题是,我如何确定这就是问题所在/我可以使用什么工具来验证我的假设

此外,(我完全清楚地知道需要考虑特权的提升安全问题)有没有任何方法可以将小部件调用的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>


这是一个跨协议冲突问题-具有文件://协议的页面无法访问具有http://协议的资产。这也有助于保护您的计算机免受恶意Silverlight应用程序的访问。

此Silverlight控件是否允许您在自己的本地文件中托管?瞧,它是你的还是你有使用它的权限?不作为答案提交,因为我不确定,但你查看过“客户端访问策略”文件吗?Silverlight控件不是我的控件。在上面的例子中,它由memorabilia.hardrock.com托管,并由他们作为包含嵌入代码的小部件提供。它们确实允许跨域调用(我在web服务器上找到了客户端访问策略文件,当时我刚刚在web服务器上抛出了测试html文件,并按预期下载了内容),但从文档中看,这更像是跨区域调用的问题,我还没有看到一种方法可以将其配置为允许的。无论是跨区域还是跨协议,没有访问SL控件或代码的权限,您知道有什么方法可以验证错误吗?我没有看到从浏览器抛出的任何错误,当我使用fiddler时,我在流量中看不到任何有用的东西。也许换一种方式来说,除了访问策略限制的逻辑和一般知识之外,还有什么方法可以诊断这个问题。此外,我明白为什么这有助于保护我的电脑。然而,如果我这么想的话,有没有办法让我个人选择让我的电脑不那么安全,让它工作起来?