3

我有一个 MVC 应用程序,用户可以在其中上传文件。在我写上传的文件之前,我根据日期时间创建一个目录。我从上传完成开始C:\ApplicationName和结束C:\ApplicationName\20111001\Filename.ext(理论上)。

我在本地 Windows 7 机器上的问题是我无法写入文件。

"access denied"无论我授予哪个用户对目录的完全访问权限,我都会遇到异常。奇怪的是,日期目录创建得很好。

我已授予以下用户完全访问权限:

  • [当前登录用户]
  • 网络服务
  • IUSR
  • IIS_IUSRS
  • 客人
  • 每个人

没有任何成功。我真的不明白这里发生了什么。当我给每个人完全访问权限时,我应该能够创建一个文件,对吧?

PS:我直接使用 Visual Studio 2010 和 ASP.NET Development Server。

4

4 回答 4

1

检查父文件夹的权限并确保它们是可继承的,您可以在高级选项窗口中进行检查。

于 2011-10-01T19:54:06.180 回答
1

这可能会有所帮助......可能应用程序池权限是这里的罪魁祸首:

IIS AppPoolIdentity 和文件系统写访问权限

于 2011-10-01T20:06:43.830 回答
1

我没有运行 IIS,我运行的是淡化版本“ASP.NET 开发服务器”。所以我很有限

问题是,为了让您从应用程序写入文件目录,您需要以管理员身份运行 Visual Studio。

Windows 7 正在阻止该进程超出其沙箱,因为它以有限的权限运行。即使您的帐户是管理员也是如此。

于 2012-10-11T18:32:45.587 回答
0

我自己也遇到了同样的问题。默认情况下,IIS7 AppPools 使用 AppPoolIdentity。只需在 IIS 管理控制台中打开您的 AppPools,选择您遇到问题的那个,选择 Advanced Settings 并在Process Model下将 Indentity 更改为 Built-in Acount > NetworkService。由于您已经授予 NETWORK SERVICE 对您的文件夹的访问权限,所以一切都应该正常工作。

于 2011-10-01T20:42:36.383 回答