我用网上的一个组件 socut_data.dll 作为数据操作的一个组件,在web.config写连接字串时用../来访问空间的上级文件夹,结果提示在..退出,真不知道该如何办。ftp目录如下
进入ftp有三个文件夹log,www,database
其中database是放数据库文件的,www是放网页的web.config也在里面
///////////这样写可以该问网站目录www下的database/data.mdb即www/database/data.mdb
<add key="SocutDataLink" value="~/database/data.mdb"/>///////////这样写目白就是想访问database下的data.mdb,可是提示出错
<add key="SocutDataLink" value="../database/data.mdb"/>/////////出错信息
无法使用前导 .. 在顶级目录上退出。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: 无法使用前导 .. 在顶级目录上退出。

解决方案 »

  1.   

    不好意思,更改一下<add key="SocutDataLink" value="../database/data.mdb"/>或者<add key="SocutDataLink" value="~/database/data.mdb"/>这样都可以该问www目录下的但这样<add key="SocutDataLink" value="../../database/data.mdb"/>才出现那个错误,是不是我的字串不对呀
      

  2.   

    搞那么复杂干什么放在 /www/database不就行了非得放在 /database 下么
      

  3.   

    你把database文件夹的共享属性改一下。因为xp都存在这个问题,你要对这个文件夹加个everyone用户,然后他的权限设为可修改。具体方法是:资源管理器的工具菜单下文件夹选项,查看页签下的“使用简单文件共享”前的对钩去掉,然后右键点database文件,选中”共享和安全“,选中权限页签,再添加用户,输入用户名ereryone,然后对钩选中修改。确定就可以了。
      

  4.   

    关于权限,我问过空间商了,他们说可以的,他们建这个database就是为了让用户把mdb放在这里别人就下载不了了,这样是为了安全
      

  5.   

    to: xzhiwei 我的不是winXP 是2k 应该怎么设置呀
      

  6.   

    1,检查文件夹的权限设置
    2,放到wwwroot下试试
      

  7.   

    谢谢xzhiwei 我想可能是我的字串出了问题 ../../database/data.mdb表示www目录上的一级还是什么呀,我都试过/../database/data.mdb    ~/../database/data.mdb  等都不行,有没有这样的例子呀,另外socut_data.dll这个组件是否有问题呢。
      

  8.   

    http://www.socut.com/speed/ 关于socut.data.dll组件
      

  9.   

    value="../database/data.mdb"
    这个可以不在web.config中设置,
    在cs页面中可以用server.mappath()来获取数据库的路径
    我是这样用的:
    如:
    <add key="aspnet" value="Provider = Microsoft.Jet.OLEDB.4.0;Data Source = "/>cs中:
    string str = ConfigurationManager.AppSettings("aspnet") + Server.MapPath("database/data.mdb");
      

  10.   

    你放到app_data下面更安全.而且你写连接字符串也方便很多.
    哎,服务器管理员不是程序员..
      

  11.   

    哎,原因是我用了socut.data.dll这个组件
      

  12.   

    to:truelove12(这些年来,我走了很多弯路!) 你放到app_data下面更安全.而且你写连接字符串也方便很多.
    哎,服务器管理员不是程序员..
    /////////////////////////////////////////////////////////////
    什么意思呀,app_data?怎么放
      

  13.   


    string p = Request.PhysicalApplicationPath;
        if (p.EndsWith("\\"))
          p = p.Substring(0,p.Length-1);
        p = p.Substring(0, p.LastIndexOf("\\")+1);
    ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source =" + p + "database\\data.mdb";即可socut.data.dll不知道是干啥的。
      

  14.   

    LZ可以知道空间上 database 的物理路径,
    至少可以知道你的wwwroot的物理路径吧 上面【孟子E章】说了的,
    那你就可以取道该路径写道web.config中去:
    <add key="SocutDataLink" value="www文件夹的物理路径的父目录/database/data.mdb"/>对于购买的空间,如你直接在编码中使用 Server.MapPath("~/database/data.mdb") 通常是不可以的,因为ISP只把www目录设置为了虚拟目录,但是database并不是此虚拟目录的子目录,是没有全县访问的
      

  15.   

    <appSettings>
    <add key="accessDb"  value="database\data.mdb"/>
    </appSettings>// Access数据库连接串设置
    public static readonly string conn_Default ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+HttpContext.Current.Request.PhysicalApplicationPath+ConfigurationSettings.AppSettings["accessDb"];
      

  16.   

    有看见钻石了,CSDN是不是只有孟子是钻石啊!
      

  17.   

    HOHO  BOSS  出来拉·~
      

  18.   

    不好意思哦,一直没解决,所以直接改名放在www目录下了,等有空再看看了,哎,谢谢各位,每位均有分,呵呵。