netmvc服务器无法写入文件,尝试写入文件时,C#MVC对路径的访问被拒绝

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

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

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

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

[当前登录用户]

网络服务

研究所

IIS_IUSRS

来宾

大家

没有任何成功。我真的不明白这里发生了什么。当我向所有人授予完全访问权限时,我应该能够创建文件吗?

PS:我直接使用Visual Studio 2010和ASP.NET开发服务器。

我认为您使用MVC的事实并不是问题的一部分。 不确定(我对MS Web服务器权限了解不多),但是您可能还需要设置应用程序信任级别。 当您部署到IIS时,您需要检查您的应用程序池以查看您的代码以哪个用户身份运行。

发布写文件的代码行,文件名的确切值(首先尝试使用诸如@" C: ApplicationName 20111001 Filename.ext"之类的编码值)和异常信息。 否则应该可以工作,因为您能够创建文件夹。

我已经完成了您所说的事情:System.IO.File.WriteAllBytes(@" C: ApplicationName 20111001 Filename.ext",新字节[1] {0}); 但是仍然会出现异常,"拒绝访问路径C: ApplicationName 20111001"

I am not running IIS, I am running the watered down version"ASP.NET

Development Server". So I am quite limited

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

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

这可能会有所帮助...可能是应用程序池权限是这里的元凶:

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

我没有运行IIS,但运行的是淡化版本" ASP.NET开发服务器"

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

我已经尝试过,但是仍然出现"访问被拒绝"异常。

比发布更多信息。

我自己也遇到了同样的问题。默认情况下,IIS7 AppPools使用AppPoolIdentity。只需在IIS管理控制台中打开您的AppPools,选择您遇到问题的那个,选择"高级设置",然后在"流程模型"下,将"身份标识"更改为"内置Acoount">" NetworkService"。

由于您已经向您的文件夹授予了网络服务访问权限,因此一切正常。

我没有运行IIS,而是运行了精简版" ASP.NET开发服务器"。 所以我很有限。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值