2010-10-27 59 views
3

我已经得到了我HTTPS上运行的应用程序Silverlight4,部署到Azure上。一切工作除了一个小故障。我以jpg缩略图和带有.gld扩展名的相关zip文件的形式提供了内容。我的应用应该显示缩略图,并允许用户下载关联的.gld/zip文件。Silverlight的跨方案访问被拒绝

的下载工作正常,但是,缩略图不会在我的UI显示。我从我的ImageFailed处理程序中获取AG_E_NETWORK_ERROR。我在我的cdn域的根目录中有一个clientaccesspolicy.xml文件。 Fiddler不显示Silverlight访问这个文件。

这里的clientaccesspolicy.xml:

<?xml version="1.0" encoding="utf-8"?> 
<access-policy> 
    <cross-domain-access> 
    <policy> 
     <allow-from>  
     <domain uri="*"/> 
     <domain uri="http://*"/ 
     <domain uri="https://*"/> 
     </allow-from>  
     <grant-to>  
     <resource path="/" include-subpaths="true" /> 
     </grant-to>  
    </policy> 
    </cross-domain-access> 
</access-policy> 

我难倒为Silverlight可以如何访问该可下载内容,而不是图像文件。如果我将它们部署到Azure的blob存储(在$ root文件夹中具有相同的clientaccesspolicy.xml文件),应用程序确实会选择缩略图,但如果我可以继续执行与我的cdn中已有的相同文件结构供应商。

一切显示完美,如果Silverlight应用程序在运行的HTTP而不是HTTPS。

在此先感谢您的任何想法!

迈克尔·康纳

+1

您可以添加更多关于您将URI分配给Image元素的机制的详细信息吗?你在使用数据绑定吗?它是一个相对或绝对的URI? – Murven 2010-10-27 05:49:36

+0

嗨 - 它的数据绑定到图像类型属性​​,使用绝对URI – 2010-10-27 20:45:02

回答

0

你缺少一个“>”第7行

+0

谢谢 - 我已经更正,但仍然没有运气。 – 2010-10-27 20:46:30

0

检查小提琴手等所使用的URI,检查图像使用HTTPS

+0

我们无法使用https访问图像。这是问题。我们的内容交付网络不支持它。 – RobinDotNet 2010-10-27 22:15:06

0

尝试实现更多的调试输出 - 也许是这样的:

您可以捕获错误。 BitmapImage,Image,ImageBrush,MultiScaleImage都有一个ImageFailed事件。只需设置一个事件处理程序即可。

0

或试试这个:

<allow-from http-request-headers="*"> 
1

感谢所有的建议 - 它们都试过了 - 仍然没有运气,可悲。不幸的是,位图的ImageFailed事件并没有给出太多细节。我认为我们可能会反对图像文件的跨计划限制。

0

我知道这是一个非常古老的问题,但如果有人还停留在类似的情况 Silverlight不允许跨方案访问。您必须在两端都有http或https。从MSDN:URL Access Restrictions in Silverlight

  • 如果你想举办您的Silverlight应用程序,并在不同服务器上的 图像存储,限制如下:您 无法将图像存储上使用了HTTPS方案,如果你的网站 托管您的应用程序在HTTP站点(交叉计划)。

  • 可以,只要是跨域站点的
    方案是一样的
    网站托管应用程序的方式对跨域现场储存图像。

  • 运行在Windows上无法存储 服务器上的图像在本地Intranet区域,如果应用程序是从Internet区域(跨区域)下载
    ,除非目标域是
    本地主机的Silverlight应用程序。

  • 只要URL使用
    相同的方案,您可以重定向到另一图像URL。