silverlight 获取服务器上图片出现异常 “AG_E_NETWORK_ERROR”
前言
之前项目一直是发布在IIS上面使用HTTP访问,现在要求改为HTTPS,通过在IIS生成自签名后,打开HTTPS通道,可以将原来的程序已HTTPS的方式发布出来。 可参见
http://blogs.msdn.com/b/webapps/archive/2013/01/24/configure-a-wcf-service-with-ssl-and-consume-from-silverlight-via-https-including-cross-domain-scenario.aspx
-----
回到正题,在部署完毕之后,通过在服务器打开浏览器访问本地图片(图片已imageserive形式发布,例如:http://192.168.1.100\shareimage\img1.png), 可以正常访问。但是如果在另一台机器上(同网段的不同机器)上使用浏览器访问,在打开页面后出现无法读取图片的现象。。。
首先,我通过debug发现在注册的Image.ImageFailed(object sender, ExceptionRoutedEventArgs e)事件中可以发现“AG_E_NETWORK_ERROR”异常,按照这个关键字
在网上搜索了一下,真的是众说纷纭。。 我起初感觉是夸URI访问权限问题,所以先尝试了添加跨域访问文件“ClientAccessPolicy.xml”, 重启IIS,未见任何效果。 但是如果我直接把Image uri 放到浏览器中的话,是显示正常的,并且在Browser中用HTTP地址方式打开网页也能显示图片。。。这个问题令我百思不得其解。。。
第二天,继续努力,终于在微软论坛上找到了答案,个人猜测是之前用的 BitmapImage 加载图片是的方式可能不适合跨URI访问资源(Browser的地址是HTTS, 但是访问资源实在HTTP)这里还是没有完全明白其中缘由,但是问题总算解决了。
原先加载图片的代码:
var img = new Image() ;
var bi = new BitmapImage(); bi.UriSource = new Uri("http://169.15.16.83/img/13540001507152531.png", UriKind.Absolute);
bi.ImageFailed += (object sender, ExceptionRoutedEventArgs ea) =>
{
// error!
// ea.ErrorException
}; img.Source = bi;
修改后的代码(通过WebClient下载图片后绑定数据):
var img = new Image();
WebClient downloadImage = new WebClient();
Uri imgUri = new Uri("http://169.15.16.83/img/13540001507152531.png");
downloadImage.OpenReadCompleted += (sender, e) =>
{
if (e.Result.Length > 0)
{
BitmapImage image = new BitmapImage();
image.SetSource(e.Result);
img.ImageSource = image;
}
};
downloadImage.OpenReadAsync(imgUri);
到此为止,虽然问题解决,但是还是不太明白之中的区别,还请各位不吝赐教。。。
另附上微软社区帖子地址,方便大家查看:https://social.msdn.microsoft.com/Forums/zh-CN/95b21533-bc82-4b6a-8f1e-4b2d0a3d890c/bitmapimageagenetworkerror?forum=windowsphonezhchs
silverlight 获取服务器上图片出现异常 “AG_E_NETWORK_ERROR”的更多相关文章
- asp.net mvc4 简单的服务器监控开发之C#获取服务器CPU、RAM、TCP等系统信息(上)
一.背景 前段时间服务器出了点问题,加上学业愈来愈紧张,写博文分享的时间越来越少.虽然不是第一次在博客园上写经验,但是近期分享的博文得到了不少的朋友支持和指正,在这里内心非常感激和开心.希望以后能认真 ...
- php获取服务器时间的代码
php获取服务器时间的代码. 用php的date函数即可来获取服务器上的时间: <?php //将时区设置为中国 date_default_timezone_set("PRC&quo ...
- 关于同步VSS服务器上的代码发生Eclipse里面的项目全部不见了
有次在同步VSS服务器上的代码的时候突然发生了错误(同步的代码的项目竟然消失了)....如下图 Could not open the editor: The file does not exist. ...
- Silverlight从客户端上传文件到服务器
这里介绍的是一种利用WebClient手动发送Stream到服务器页面的上传文件方法. 一.服务器接收文件 这里使用一个ASHX页面来接收和保存Silverlight传来的Stream,页面代码如下: ...
- 关于wcf异常异常信息:由于内部错误,服务器无法处理该请求。有关该错误的详细信息,请打开服务器上的 IncludeExceptionDetailInFaults (从 ServiceBehaviorAttribut
异常信息:由于内部错误,服务器无法处理该请求.有关该错误的详细信息,请打开服务器上的 IncludeExceptionDetailInFaults (从 ServiceBehaviorAttribut ...
- SNF开发平台WinForm之十三-单独从服务器上获取PDF文件进行显示-SNF快速开发平台3.3-Spring.Net.Framework
1运行效果: 2开发实现: 如果需要单独显示PDF文件时用下面代码去实现,指定url地址. 地址: . 获取附件管理的实体对象: List<KeyValuePair<string, obj ...
- 【JSP】让HTML和JSP页面不缓存从Web服务器上重新获取页面
用户退出后,如果点击浏览器上的后退按钮,Web应用将不能正确保护受保护的页面——在Session销毁后(用户退出)受保护的JSP页重新在浏览器中显示出来. 然而,如果用户点击返回页面上的任何链接,We ...
- Java从服务器上获取时间,动态在jsp页面显示
Java获取服务器时间,动态显示到jsp页面,大家都是到Java只能获取一次,到页面的时间是静态的,不过通过js和Java的合作,巧妙地实现此功能 本人是给电视做系统,客户要求页面能显示时间,因为电视 ...
- 项目部署到服务器上之后request.getRemoteAddr()为什么获取的都是本地地址
获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了.如 ...
随机推荐
- 事务环境下的CombGuid
一直使用osharp,osharp3使用的是combguid,代码如下 /// <summary> /// 返回Guid用于数据库操作,特定的时间代码可以提高检索效率 /// </s ...
- C#根据时间产生有序的GUID编码
public static Guid GenerateGuid() { byte[] guidArray = Guid.NewGuid().ToByteArray(); , , ); DateTime ...
- java批量生成excel代码分享
package com.test.util; /** * @author ocq * */ import java.io.FileOutputStream; import java.io.IOExce ...
- 配置 nginx server 出现nginx: [emerg] "root" directive is duplicate in /etc/nginx/server/blogs.conf:7
在配置nginx 虚拟机时,执行 sudo /usr/sbin/nginx -t 报下面的错误: nginx: [emerg] nginx: configuration file /etc/nginx ...
- 阿里云9折推荐码:0LGVW2
阿里云9折推荐码:0LGVW2,第一次购买云服务器或云数据库可享受原价9折优惠.
- SQL获取日期格式
) + ' ' + CONVERT(VARCHAR, DATEPART(hh, GetDate())) + ':' + ) AS Date ),) ),) ),) as DateTime) as [D ...
- SqlServer中字符串和日期类型的转换
SQL Server Date 函数 定义和用法 CONVERT() 函数是把日期转换为新数据类型的通用函数. CONVERT() 函数可以用不同的格式显示日期/时间数据. 语法 CONVERT(da ...
- Spark之Streaming
1. socket消息发送 import java.net.ServerSocket import java.io.PrintWriter import scala.collection.mutabl ...
- CSS3必须要知道的10个顶级命令
1.边框圆角(Border Radiuas) 这个是我们在平常很常用的吧,以前我在用div圆角的时候,特别特别的痛苦,不管是用CSS来画圆角,还是用图片来画圆角都不那么容易,但是现在好了,在CSS3中 ...
- jQuery.extend()介绍
},{name:"Jerry",sex:"Boy"}) 得到的Result结果是: result={name:"Jerry",age:21, ...