在SIlverlight中加载远程映像时出现AG_E_NETWORK_错误

在SIlverlight中加载远程映像时出现AG_E_NETWORK_错误,silverlight,image,cross-domain,Silverlight,Image,Cross Domain,我有一个列表框,其中填充了从JSON响应读取的项目。每个项目都有一个图像控件,该控件在缩略图属性给定的远程URL处显示缩略图。我创建了一个自定义的IValueConverter,将URL转换为BitmapImage,但图像仍然没有显示。所以我最终意识到我可以通过ImageFailed事件捕获加载错误 我得到的是一个AG\u E\u网络错误。我查看了Silverlight的,表中指出,在没有crossdomain.xml文件的情况下,可以从另一个域加载图像 我确信URL是有效的,并且指向一个图像,

我有一个
列表框
,其中填充了从JSON响应读取的项目。每个项目都有一个
图像
控件,该控件在
缩略图
属性给定的远程URL处显示缩略图。我创建了一个自定义的
IValueConverter
,将URL转换为
BitmapImage
,但图像仍然没有显示。所以我最终意识到我可以通过
ImageFailed
事件捕获加载错误

我得到的是一个AG\u E\u网络错误。我查看了Silverlight的,表中指出,在没有crossdomain.xml文件的情况下,可以从另一个域加载
图像

我确信URL是有效的,并且指向一个图像,因为我可以直接从JSON复制和粘贴它,并在浏览器中查看它。然而,Silverlight拒绝加载它

为什么会这样


编辑:我安装了Fiddler,它显示加载Silverlight页面时发出的请求。但是,这些请求都不是针对图像的。Silverlight似乎甚至没有尝试发出请求并自动引发异常。

您实际上是在尝试使用WebClient或Silverlight中的另一个HTTP堆栈下载图像(二进制内容)?除非您可以编写跨域文件,否则这是不可能的


我相信您必须设置Image.Source的URL,这样Silverlight就可以解析图像了。您还将看到Fiddler当时发出请求。

您实际上是在尝试使用WebClient或Silverlight中的另一个HTTP堆栈下载图像(二进制内容)?除非您可以编写跨域文件,否则这是不可能的


我相信您必须设置Image.Source的URL,这样Silverlight就可以解析图像了。你也会看到Fiddler当时提出了请求。

有人在Silverlight论坛上回答了这个问题。问题是我使用的是自动生成的调试页面,而不是IIS网站。Silverlight不允许跨协议调用(在本例中,从file://到http://)。

有人在Silverlight论坛上回答了这个问题。问题是我使用的是自动生成的调试页面,而不是IIS网站。Silverlight不允许跨协议调用(在本例中,从file://到http://)。

另一种方式:

  • 添加de Web项目以拥有自己的开发服务器
  • 将其设置为启动项目
  • 打开它的属性。Web选项卡:标记特定页面
  • Web选项卡/调试器(位于底部):标记Silverlight
  • 现在,无需安装ISS服务器即可运行和调试Silverlight应用程序。

    另一种方法:

  • 添加de Web项目以拥有自己的开发服务器
  • 将其设置为启动项目
  • 打开它的属性。Web选项卡:标记特定页面
  • Web选项卡/调试器(位于底部):标记Silverlight

  • 现在,您无需安装ISS服务器即可运行和调试Silverlight应用程序。

    如果您将映像托管域添加到crossdomain.xml文件中,会发生什么情况?我无法控制crossdomain.xml文件。Mike Snow他编写了一小段代码来找出AG_E_NETWORK_错误的原因。也许这能帮你找出问题所在。你可以在感谢上找到它,但我在问题中提到我已经在使用ImageFailed事件,这就是我看到AG_E_NETWORK_错误的方式。这就是它所说的。没有错误代码可以解释。如果您将映像托管域添加到crossdomain.xml文件中会发生什么?我对crossdomain.xml文件没有任何控制权。Mike Snow他编写了一小段代码来找出AG_E_NETWORK_错误的原因。也许这能帮你找出问题所在。你可以在感谢上找到它,但我在问题中提到我已经在使用ImageFailed事件,这就是我看到AG_E_NETWORK_错误的方式。这就是它所说的。没有错误代码可以解释。