仰天一笑

昨日不悔,今日勿失,明日莫忧! —徐羽

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  230 随笔 :: 27 文章 :: 803 评论 :: 39 Trackbacks

 C#中.net中得IO类虽然功能很强大,但是正是因为功能强大,所以在很多虚拟服务商的服务器上并不实用 。因为IO.Directory和IO.DirectoryInfo在应用文件夹操作中,会遍历网站所在的硬盘的磁盘跟目录,一般虚拟服务商并不会给这个磁盘的Network service用户开启读取权限,所以在操作文件夹的时候,使用IO下的这两个类会出现如下错误:

未找到路径“E:\”的一部分。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.IO.DirectoryNotFoundException: 未找到路径“E:\”的一部分。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:

[DirectoryNotFoundException: 未找到路径“E:\”的一部分。]   
System.IO.__Error.WinIOError(Int32 errorCode, String str) +287  

其中未找到路径E:/,E盘就是服务器上磁盘路径,可能会因为服务器的不同而不同。面对这个问题,服务商又不肯给你多开权限的情况下,应该怎么解决呢?

呵呵,可能是因为我基础比较差,于是上网寻求解答,但是苦苦找不到答案。偶然的一次,发现asp可以应用fso创建文件夹。于是想到用asp.net调用window中得fso组件。呵呵,居然成功了,特写这篇文章给那些苦于此问题不得解决的朋友和兄弟。

项目->引用  浏览  COM组件  Microsoft  Scripting  Runtime  

Scripting.FileSystemObject  fso=new  Scripting.FileSystemObjectClass();  

fso.CreateFolder(Path)

就可以了,不过此种解决方法的前提是虚拟服务商开启了FSO

至于IO操作文件夹得两个类为什么会遍历磁盘根目录还在研究中,不过问题终于解决了,希望了解此的人能给大家一个答案。


posted on 2006-12-27 15:23 仰天一笑 阅读(815) 评论(3)  编辑 收藏 所属分类: ASP.Net-C#

评论

#1楼 [楼主] 2006-12-27 15:26 仰天一笑      
对路径“D:\net\code\ch03\TextCounter.cnt”的访问被拒绝。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.UnauthorizedAccessException: 对路径“D:\net\code\ch03\TextCounter.cnt”的访问被拒绝。

ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。

若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

源错误:

生成此未处理异常的源代码只能在调试模式中进行编译时显示。若要启用该功能,请执行以下步骤之一,然后请求 URL:

1. 在生成错误的文件的顶部添加一个“Debug=true”指令。示例:

<%@ Page Language="C#" Debug="true" %>

或者:

2. 将以下节添加到应用程序的配置文件中:

<configuration>
<system.web>
<compilation debug="true"/>
</system.web>
</configuration>

请注意,第二种方法将使给定应用程序中的所有文件在调试模式下进行编译。第一种方法只使特定文件在调试模式下进行编译。

重要事项:以调试模式运行应用程序肯定会引起内存/性能系统开销。在部署到产品方案中之前,应该确保应用程序已禁用调试。
  回复  引用  查看    


  回复  引用    

写的不错
  回复  引用    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-01-22 12:37 编辑过