我有一个内部使用的Web应用程序,指向网络驱动器上的图像。
当我在VS中测试它时,它可以工作,但是一旦发布,图像就不会加载。
我确定它是IIS中的一个设置,但我无法弄清楚它是什么。
每台计算机都已登录到域中,应允许有权访问的人查看图像。
我尝试将身份验证更改为模拟,但没有运气。
有什么想法吗? 感谢
答案 0 :(得分:0)
我最终通过更改图片的加载方式来解决问题。我没有使用网络路径作为src,而是转而使用通用处理程序来渲染图像。
所以,现在图片标签看起来像
<img alt="Item Image" src="/ImageHandler.ashx?f=100" />
使用以下代码将图像加载到处理程序中。
public void ProcessRequest(HttpContext context)
{
var f = Convert.ToString(context.Request.QueryString.Get("f"));
var path = string.Format("//network-share/images/{0}.jpg", f);
var image = Image.FromFile(path);
context.Response.Clear();
context.Response.ClearHeaders();
image.Save(context.Response.OutputStream, ImageFormat.Jpeg);
context.Response.ContentType = "image/jpeg";
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
虽然我仍想弄清楚权限问题,但这是一个更好的整体解决方案。由于指向文件位置似乎存在跨浏览器兼容性问题,因此您不会在此处使用。