未找到路径“X:/”的问题

    Web应用在开发机上可以正常运行,上传到服务器后有关文件上传一直不能正常使用。
    错误是:未找到路径“D:/”的一部分。
    程序是没有问题,看来肯定是服务器的问题了,权限应该也没问题。后来发现这次在服务器上面安装的盘符与IIS的默认目录不在同一个盘符上,原来.NET FrameWork安装的时候会将aspnet用户增加一个权限,浏览当前盘的权限。而如果不在默认盘的情况下:要在d盘加上users组“读取”、“列出文件夹”的权限。这样才能保证aspnet用户可以访问该盘以及该盘的子目录。

后来在网上偶然发现一篇给服务商的文章:

问题:

为何我添加频道得时候,如果填写频道目录会提示这样的错误:未找到路径“D:/”的一部分。(其中的D:/可能是其它盘符)


回答: 

解决办法其实很简单,给磁盘根目录ASPNET用户读权限,程序所在目录ASPNET用户给予写、创建目录、修改等权限即可,详细操作方法请参考“ 创建安全的ASP.NET虚拟主机”

在实际的应用中,我们发现很多的Asp.NET空间提供商并没有相关的经验,而依然停留在Asp的管理模式中。
其中最常见,就是目录权限的配置上:他们大多数沿习了Asp的经验,给用户所在目录赋于所有权限,然后将磁盘根目录的相关权限全部去掉。
这样以来就导致一个问题,就是Asp.NET中的 Server.MapPath 无法使用,这个方法却是创建目录或文件所必须的,如下面创建目录的代码:
Directory.CreateDirectory(Server.MapPath("Test"));
这是一个非常简单的操作:在用户的当前目录下创建一个名为 "Test" 的子目录。
然后就是这样一个操作在没有正确配置的空间就会无法运行,它会提示为什么会有这样的错误呢?
原因就是 Server.MapPath() 这个方法,这个方法是让一个相对路径转为绝对路径,而在转换的过程序中,.NET框架需要得到当前硬盘的一些属性,如盘符等,而这个时候,空间提供商却将.Net用户对磁盘根目录的权限全部拒绝,从而导致程序无法正常运行。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值