CSDN博客

img xiaoK

再谈Asp.NET虚拟主机的权限配置!(转载)

发表于2005/1/1 11:10:00  1165人阅读

 

在实际的应用中,我们发现很多的Asp.NET空间提供商并没有相关的经验,而依然停留在Asp的管理模式中。
其中最常见,就是目录权限的配置上:他们大多数沿习了Asp的经验,给用户所在目录赋于所有权限,然后将磁盘根目录的相关权限全部去掉。
这样以来就导致一个问题,就是Asp.NET中的 Server.MapPath 无法使用,这个方法却是创建目录或文件所必须的,如下面创建目录的代码:
Directory.CreateDirectory(Server.MapPath("mydirectory"));
这是一个非常简单的操作:在用户的当前目录下创建一个名为 "mydirectory" 的子目录。
然后就是这样一个操作在没有正确配置的空间就会无法运行,它会提示这样的错误:未找到路径“d:/”的一部分。(其中的D:/可能是其它盘符)

为什么会有这样的错误呢?
原因就是 Server.MapPath() 这个方法,这个方法是让一个相对路径转为绝对路径,而在转换的过程序中,.NET框架需要得到当前硬盘的一些属性,如盘符等,而这个时候,空间提供商却将.net用户对磁盘根目录的权限全部拒绝,从而导致程序无法正常运行。

有个时候,空间提供商会说:"你为什么要用绝对路径,而不使用相对路径呢?"
这是行不通的,如果你这样程序:Directory.CreateDirectory("mydirectory");
系统在运行的时候,并不是象你想像的那样,会自动在用户的当前目录下创建目录,而会尝试在 "C:/WINNT/System32" 路径下创建目录 (其中的C:/WINNT表示你的操作系统安装的路径)

0 0

相关博文

我的热门文章

img
取 消
img