程序文件在c盘的wwwroot目录下,而图片文件的目录在d盘的a目录下(为了方便我的程序访问这个文件夹里面的东西我为a目录建立了一个虚拟目录b),现在我程序某个页面有个image控件,我在后台代码中写
image.navigateurl = /b/xx.jpg,结果运行后图片显示为红叉(查看图片的属性显示为http://localhost/b/xx.jpg,源代码中图片的路径为/b/xx.jpg),我想请问下到底是我程序代码的问题还是有关目录的权限没设置好的问题?

解决方案 »

  1.   

    navigateurl中直接先加上http://localhost/b/xx.jpg试试
      

  2.   

    你的虚拟目录b是建立在IIS那一层的?在默认网站根目录下?
    使用http://localhost/b/xx.jpg可否找到你的xx.jpg图片?
      

  3.   

    b是建立在默认网站的根目录下面,我开始直接把http://localhost/b/xx.jpg这个给用上,局域网里面访问是没有问题可以显示,但是如果在外网上面访问就不行了,所以我后来换成相对路径可是还是不行,上面有位大大说是权限的问题,那么应该怎么设置权限了?那个存放图片文件的目录已经把everyone这个用户给加上了,可是还是不行
      

  4.   

    我当初在使用2003时出现过类似问题,在本地localhost上无论是IIS发布还是IDE里启动,一个目标图片都是个X;可是我反复检测代码均无问题,很有信心代码和逻辑是正确的。
    于是我把这个WEB工程打包发布到了一台服务器上,靠,那个图片就出来了!!!
    说实话到现在我也没搞明白是怎么回事……
    你也到别的机器上发布一下试试
      

  5.   

    to 任博软:谢谢你的提示和说明,我试试,如果能行立马给分!
    请问cyp如何直接访问物理路径?相关设置能否举个例子说明下了?直接把路径值赋给image的navigateurl么?
      

  6.   

    大家继续帮我看看问题啊,能解决问题的加分给你
    另开了个百分贴
    http://community.csdn.net/Expert/topic/4569/4569689.xml?temp=.268841
      

  7.   

    这是从数据库直接读取图片数据,然后显示的例子你可参考一下http://www.cnblogs.com/kwklover/archive/2004/05/10/8773.aspx
      

  8.   

    直接用http://localhost/b/xx.jpg这个是绝对URL引用,首先得保证这个地址本身能被访问,外网当然不能访问localhost,需要一个实际的web地址
      

  9.   

    string AbsUri =Request.Url.AbsoluteUri;
    string RawUrl = Request.RawUrl;
    string  RootUrl="";
    RootUrl = AbsUri.Substring(0, AbsUri.Length - RawUrl.Length)+Request.ApplicationPath;
    image.navigateurl =RootUrl +" /b/xx.jpg";
    这样外网的也可以了,试试。
      

  10.   

    to cyp:谢谢你的例子,但是数据库里面我存放的仅仅是文件的路径 。系统也做了大半了,现在想更改存储方式和数据库结构不太现实。
      

  11.   

    你已经建了一个虚拟目录名为a的虚拟目录吧,如果是就把这么a虚拟目录改个别的名字就ok了,
    试试
      

  12.   

    你运行的本地的程序,IIS设定了虚拟目录没有啊,建议你把那个图片文件夹也放到c盘的wwwroot目录下(IIS默认),这样你在程序里的相对路径就应该没有问题吧!
      

  13.   

    大海的方法证实和我原来用的相对路径方法效果一样,得到的图片属性还是http://localhost........后面的两位大大, 名字当然会是唯一的;yw我肯定设置了虚拟目录阿,如果能换存放的位置我早换了
      

  14.   

    把http://localhost换成IP地址直接访问一下看看。
    如果能看到,就改成IP地址显示。
    如果不能看到,说明是权限的问题。
      

  15.   

    IIS没有启用匿名用户访问所致。
      

  16.   

    地址访问问题
    如果你是用localhost/yourimgname/a.jpg这样的地址,到了客户端的话,这代表的是客户端的机器了
    你需要的是直接把图片地址换成服务器地址
    假如:
    Server IPAddress:x.xx.x.xxx
    Web:
    C:\Inetpub\wwwroot\yourWeb\index.aspx
    虚拟目录中的名称为:yourwebname
    Image:
    D:\yourWebImg\a.jpg
    虚拟目录名称:yourwebimgname
    这时候你在index.aspx中使用a.jpg的时候,要用的地址应该是:x.xx.x.xxx/yourwebimgname/a.jpg
    而不能简单用loalhost
      

  17.   

    在选取图片路径的时候,对话框里面有几个选项URL类型:要选与根相关的,而不要与文档相关的
      

  18.   

    >> 局域网里面访问是没有问题可以显示,但是如果在外网上面访问就不行了图片文件夹 b 在外网对应的站点下也需要建虚拟子目录吧?
      

  19.   

    luck大大:我启用了
    缥缈大大:看清楚我的问题了么?我在代码中曾用的是相对路径访问都没有效果,而且关键的是程序运行的时候怎么取到那个ip地址了?你有方法么?
    east大大:我是动态赋url。
    jadeface大大:我们公司的那台机器做成了网关样的,程序都放在上面跑,对内ip是192.168.0.1,对外也有个ip,