\test\data\db1.mdb 文件本身给用户ASPNET以如下权限;
允许 拒绝
完全控制 &n bsp; □ □
修改 &nbs p; &nbs p;□ □
读取及运行 √ □ ;
列出文件夹目录 ; √ □
读取 &nbs p; &nbs p;√ □
写入 &nbs p; &nbs p;√ □
1.3 放开权限后继续实验
(a)如果db1.mdb是Access2000创建的数据库,出现如下错误: "/test"应用程序中的服务器错误。
不能锁定文件。
说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:System.Data.OleDb.OleDbException:不能锁定文件。
(b)如果db1.mdb是AccessXP创建的数据库,没有出现错误。
(c)原因初步分析:我们发现在打开Access数据库时,同时会在所在目录生成一个同名的*.ldb文件,这是一个Access的锁定标记。鉴于此,我们猜测,用户ASPNET访问Access数据库时,也需要生成一个锁定标记,而该目录没有允许其写入,因此出错。至于AccessXP创建的数据库为什么没有这个错误,原因还不得而知。
我们进一步放开权限,
a)D:\wwwroot\test\data\文件夹给用户ASPNET以如下权限:
允许 拒绝
完全控制 &n bsp; □ □
修改 &nbs p; &nbs p;□ □
读取及运行 √ □ ;
列出文件夹目录 ; √ □
读取 &nbs p; &nbs p;√ □
写入 &nbs p; &nbs p;√ □
b) D:\wwwroot\test\data\db1.mdb文件本身给用户ASPNET以如下权限:
√允许将来自父系的可继承权限传播给该对象
1.4继续实验,发现错误已解决,那么上面这个权限就是我们需要放开的"最低权限"。
(a)如果db1.mdb是