IIS无法从UNC路径或虚拟目录加载映像

时间:2013-08-26 04:50:24

标签: c# asp.net iis-7.5

我刚在IIS管理器本地安装了一个网站。我可以从路径http://192.168.154.2/Default.aspx访问该站点,我有一个名为Affiche的文件夹,其中包含一些图像,位于同一网络的远程服务器中。

要访问图像,我使用的是一个aspx页面GetImage.aspx,它的工作原理如下:

 var path = "//192.168.84.52/Distri/Affiche/10038P.jpg"


    if ((string.IsNullOrEmpty(imageName) == false))
    {

        try
        {
            // Retrieving the image
            System.Drawing.Image fullSizeImg;
            fullSizeImg = System.Drawing.Image.FromFile(path);
            // Writing the image directly to the output stream
            fullSizeImg.Save(Response.OutputStream, ImageFormat.Jpeg);
            // Cleaning up the image
            fullSizeImg.Dispose();
        }

        catch (System.IO.FileNotFoundException)
        {
            //MessageBox.Show("There was an error opening the bitmap." +
            //    "Please check the path.");
        }
    }

此解决方案在localhost(使用Visual Studio)中运行良好,我使用类似http://localhost:3606/GetImage.aspx的链接完美地获取图像,但是http://192.168.154.2/GetImage.aspx不起作用。它只会显示一个损坏的图像图标。 可以从我安装了Web服务器的计算机(已经输入登录名)访问遥控器。

我使用此解决方案尝试了另一种解决方案:a virtual directory

从IIS管理器我可以完美地查看来自远程服务器的文件,但是当我尝试访问虚拟文件夹时,这样:http://192.168.154.2/afficheImage/20772G.jpg

我有500.19错误且权限不足。

有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:0)

代码的第一行:

var path = "//192.168.84.52/Distri/Affiche/10038P.jpg"

这指的是与具有虚拟目录的网站不同的IP地址。 “192.168.154.2”。您是否从其他服务器访问图像?在这种情况下,您还需要检查另一台服务器上的权限。

答案 1 :(得分:0)

使用下面的路径代码

  

var path = @“\\ 192.168.84.52 \ Distri \ Affiche \ 10038P.jpg”

这是正确的表示法,但是你提供了无效的斜杠。