我用网上的一个组件 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: 无法使用前导 .. 在顶级目录上退出。
进入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: 无法使用前导 .. 在顶级目录上退出。
2,放到wwwroot下试试
这个可以不在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");
哎,服务器管理员不是程序员..
哎,服务器管理员不是程序员..
/////////////////////////////////////////////////////////////
什么意思呀,app_data?怎么放
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不知道是干啥的。
至少可以知道你的wwwroot的物理路径吧 上面【孟子E章】说了的,
那你就可以取道该路径写道web.config中去:
<add key="SocutDataLink" value="www文件夹的物理路径的父目录/database/data.mdb"/>对于购买的空间,如你直接在编码中使用 Server.MapPath("~/database/data.mdb") 通常是不可以的,因为ISP只把www目录设置为了虚拟目录,但是database并不是此虚拟目录的子目录,是没有全县访问的
<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"];