File.Delete删除文件,仍然会抛出UnauthorizedAccessException

时间:2011-12-07 07:47:18

标签: .net-4.0 iis-7.5

在我的Web应用程序中,由IIS 7.5中的ASP.NET v4.0应用程序池托管, 当删除驻留在应用程序所谓的物理路径(HostingEnvironment.ApplicationPhysicalPath)中的文件时,文件会被删除,但会抛出一个UnauthorizedAccessException。

我尝试将该目录的所有权限授予所有用户(用户“Everyone”,用户“ASP.NET v4.0”,这应该是IIS 7.5中重要的用户“NETWORK”服务“,......),无济于事。

现在,如果我将要删除的文件的路径更改为子目录或磁盘上的任何其他绝对路径,则该文件将被删除,没有任何例外。

我该如何解决这个问题?

或者,对于Web应用程序来说,将文件从物理路径中删除是不正确的做法(即使它首先放在那里,在我的情况下它是一个日志文件)?

更新与此同时,我通过使用日志文件的子目录解决了这个问题,这无论如何都有意义,但我仍然对为什么发生这种异常以及是否有修复感兴趣

1 个答案:

答案 0 :(得分:0)

通过说'您授予所有用户权限'你的意思是你使用' Everyone'来标记目录?用户?如果没有检查是否是基于权限的错误,因为它可能是有趣的Windows UAC。 UAC阻止您在未经许可的情况下写入某些文件夹。

如果在将权限设置为所有人后仍然有效,请检查运行应用程序池的用户帐户,并尝试授予该帐户的权限。