Asp.net "对路径的访问被拒绝" 解决办法(不是文件的一部分)

来源:互联网 发布:管家婆软件单机版 编辑:程序博客网 时间:2024/05/17 22:12
 

给下面这个目录加上ASP.NET帐号的权限。
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files


ASP.NET帐号的权限为: 读取和运行,列出文件夹目录,读取,写入。

 

 

前几天把自己写的东西移植到另一台机器上的时候,出了这个问题.很直觉地想到了是权限问题.可是我把WEB目录下的权限都几乎改成了完全控制,还是不能解决问题.查了很多资料,讲得也不清楚.有说改这个,也有说改那个的.后来,终于注意到,出错时显示的是对 ASP.NET Temporary Files文件夹的访问被拒绝.于是进到这个目录,并在权限中添加了ASPNET和NETWORK SERVICE两个用户,并将权限设为除可写,问题解决!

 

 

如果是上传文件出现的问题,可能是代码问题,出现原因服务端无法得到客户端的路径文件,标准代码如下:(upload是上传控件)

        Stream myStream = upload.PostedFile.InputStream;

        int DataLen = upload.PostedFile.ContentLength;

        string Type = upload.PostedFile.ContentType;

        string filename = Path.GetFileName(upload.PostedFile.FileName);

        string filetype = Path.GetExtension(upload.PostedFile.FileName);

        byte[] Data = new byte[DataLen];

        myStream.Read(Data, 0, DataLen);

 

如果用FileStream 用路径得到流,那么服务端无法得到客户端的路径文件,不是文件的一部分。

 

 

【总结】对路径"......"的访问被拒绝--解决办法

1.可能是安装出了问题,重新安装 执行命令,aspnet_regiis -i ,记得要生启啊
2.提升everyone的权限到可修改
3.提升aspnet权限:控制面板-管理工具-计算机管理-本地用户和组 找到ASPNET 隶属于里面加上Administrators
4.将iis虚拟目录删掉后重新建
5.在web.config文件中加入<identity impersonate="true"/>


基本上跑不出这个范围了。
都试一遍差不多你的问题就会解决掉。