我有一个将在内部使用的 Web 应用程序,它指向网络驱动器上的图像。
当我在 VS 中测试它时它可以工作,但图像一旦发布就不会加载。
我确定这是 IIS 中的一个设置,但我不知道它是什么。
每台计算机都已经登录到域中,应该允许有权访问的人查看图像。
我尝试将身份验证更改为模拟,但没有运气。
有任何想法吗?谢谢
我最终通过更改图像的加载方式解决了这个问题。我没有使用网络路径作为 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();
}
虽然我仍然想弄清楚权限问题,但这是一个更好的整体解决方案。由于指向文件位置似乎存在跨浏览器兼容性问题,而您在这里不会遇到。