0

我有一个将在内部使用的 Web 应用程序,它指向网络驱动器上的图像。

当我在 VS 中测试它时它可以工作,但图像一旦发布就不会加载。

我确定这是 IIS 中的一个设置,但我不知道它是什么。

每台计算机都已经登录到域中,应该允许有权访问的人查看图像。

我尝试将身份验证更改为模拟,但没有运气。

有任何想法吗?谢谢

4

1 回答 1

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();
}

虽然我仍然想弄清楚权限问题,但这是一个更好的整体解决方案。由于指向文件位置似乎存在跨浏览器兼容性问题,而您在这里不会遇到。

于 2013-09-04T12:22:08.333 回答