测试代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
FileInfo fs;
try
{
string filepath=System.Web.HttpContext.Current.Server.MapPath("../");
fs=new FileInfo(filepath+"\\"+"exp.txt");
if (fs.Exists==true)
{
fs.Delete();
System.Web.HttpContext.Current.Response.Write("Delete");
}
else
{
fs.Create();
System.Web.HttpContext.Current.Response.Write("Create");
}
}
catch (Exception ex)
{
System.Web.HttpContext.Current.Response.Write(ex.Message);
}
}
就是想检查本网站所在服务器的物理路径下某个文件是否存在,并进行些删除创建之类的操作。但是在普通application里毫无问题的代码,在asp.net的webapplication下就是无法成功,总是“对某某文件的访问被拒绝”的异常。哪位大生知道是怎么回事?或者我的权限设置哪有问题?。
你的身份是administrator,并不等于运行ASP.NET的账号是administrator,除非你用身份模拟了。一般情形下,运行ASP.NET的账号是ASPNET(或是 Network Service,如果你用Windows 2003的话),用资源管理器,找到你需要写的目录,按右鼠标选择打开属性对话框,去安全页,赋于上述账号写的权限
如果真的需要那么大的权限的话,你可以把ASPNET帐号的用户分配到admin管理组中区.
另外的办法就是按照思归说的,对需要操作的文件夹分配读写的权限...文件--右键--安全--添加ASPNET帐号就好了
操作的用户需要再大的权限也不能将他放到admin管理组中。因为他只对这个虚拟目录有权限。不要把他加到管理员组中。还是按照思归的方法。