WebForm、MVC图片加载失败处理
还是那个该死的WebFrom项目,部分功能替换为MVC后感觉好多了,但是WebForm、MVC都有图片加载失败时显示提示图片的需求,并且统一在js中处理。问题来了,js中图片路径怎么处理呢?现场有可能部署为网站,也有可能为应用,再加上对路径的不了解,决定弄个IHttpHandler一劳永逸解决路径问题。
搞定了IHttpHandler,发现图片还是显示不出来,日志中多了System.UnauthorizedAccessException: Access to the path 'xxxx' is denied.
不就是权限么太容易了,文件夹加上IIS AppPool\poolname用户,还不行,添加给IIS AppPool\poolname用户全部权限才能显示出来
仔细想想不是那么回事,再看看程序,问题在这里using (FileStream fs = new FileStream(context.Server.MapPath(path), FileMode.Open))
改为using (FileStream fs = new FileStream(context.Server.MapPath(path), FileMode.Open, FileAccess.Read)),再把文件夹IIS AppPool\poolname用户删除,一切正常