我有一个MVC应用程序,用户可以在其中上传文件。在我写上传文件之前,我根据日期时间创建一个目录。我从C:\ApplicationName
开始,在完成上传时(理论上)结束C:\ApplicationName\20111001\Filename.ext
。
我在本地Windows 7计算机上遇到的问题是我无法写入该文件。
我得到"access denied"
例外,无论我给哪个用户完全访问该目录。奇怪的是,日期目录创建得很好。
我已授予以下用户完全访问权限:
没有任何成功。我真的不明白这里发生了什么。当我给Everyone完全访问权限时,我应该能够创建一个文件吗?
PS:我直接使用Visual Studio 2010和ASP.NET Development Server。
答案 0 :(得分:1)
检查父文件夹的权限并确保它们是可继承的,您可以在高级选项窗口中进行检查。
答案 1 :(得分:1)
这可能会有所帮助......可能应用程序池权限是罪魁祸首:
IIS AppPoolIdentity and file system write access permissions
答案 2 :(得分:1)
我没有运行IIS,我正在运行淡化版本“ASP.NET 开发服务器“。所以我非常有限
问题是,为了从应用程序写入文件目录,您需要以管理员身份运行Visual Studio。
Windows 7阻止进程进入其沙箱,因为它以有限的权限运行。即使您的帐户是管理员,也是如此。
答案 3 :(得分:0)
我自己也有同样的问题。默认情况下,IIS7 AppPools使用AppPoolIdentity。只需在IIS管理控制台中打开AppPools,选择您遇到问题的AppPools,选择高级设置,然后在流程模型下将Indentity更改为Built-in Acoount>的网络服务即可。 由于您已经为您的文件夹授予了NETWORK SERVICE访问权限,因此一切都应该有效。