【发布时间】:2011-11-29 04:03:23
【问题描述】:
我有一个 MVC 应用程序,用户可以在其中上传文件。在我写上传的文件之前,我根据日期时间创建一个目录。我从C:\ApplicationName 开始,上传完成后以C:\ApplicationName\20111001\Filename.ext 结束(理论上)。
我在本地 Windows 7 机器上的问题是我无法写入文件。
无论我授予哪个用户对目录的完全访问权限,我都会收到 "access denied" 异常。奇怪的是,日期目录创建得很好。
我已授予以下用户完全访问权限:
- [当前登录用户]
- 网络服务
- IUSR
- IIS_IUSRS
- 客人
- 大家
没有任何成功。我真的不明白这里发生了什么。当我授予所有人完全访问权限时,我应该能够创建文件吧?
PS:我直接使用 Visual Studio 2010 和 ASP.NET Development Server。
【问题讨论】:
-
我认为您使用 MVC 并不是问题的一部分。不确定(我还不太了解 MS Web 服务器权限),但您可能还需要设置应用程序的信任级别。当您部署到 IIS 时,您需要检查您的应用程序池以查看您的代码以哪个用户身份运行。
-
发布写入文件的代码行、文件名的确切值(首先尝试使用硬编码值,如@"C:\ApplicationName\20111001\Filename.ext")和异常信息。否则应该可以工作,因为您可以创建文件夹。
-
我已经按照你说的做了:System.IO.File.WriteAllBytes(@"C:\ApplicationName\20111001\Filename.ext", new byte[1] { 0 });但仍然得到异常,“访问路径 'C:\ApplicationName\20111001' 被拒绝”
标签: c# access-denied file-writing