MyD*_*ons 8 permissions asp.net-mvc
我继承了一个新项目.网站(MVC.NET)引用Windows 2012服务器上的文件位置(它似乎是硬编码的),但该文件与网站不在同一目录中.
部分代码使用File.Copy将文件从一个位置复制到另一个位置,但这会导致异常.
显然它在昨天工作,而今天却没有.该网站已关闭,因此我正在寻求解决它.
来自浏览器的错误消息是
访问路径'C:\ Websites\Website\Content\Images\Uploads\Certificate 1.jpg'被拒绝.
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.UnauthorizedAccessException:拒绝访问路径'C:\ Websites\Website\Content\Images\Uploads\Certificate 1.jpg'.
ASP.NET无权访问所请求的资源.考虑将资源的访问权限授予ASP.NET请求标识.ASP.NET具有基本进程标识(IIS 5上通常为{MACHINE}\ASPNET,IIS 6和IIS 7上为网络服务,IIS 7.5上已配置的应用程序池标识),如果应用程序未模拟,则使用该标识.如果应用程序模拟通过,则标识将是匿名用户(通常为IUSR_MACHINENAME)或经过身份验证的请求用户.
要授予对文件的ASP.NET访问权限,请在"文件资源管理器"中右键单击该文件,选择"属性",然后选择"安全"选项卡.单击"添加"以添加适当的用户或组.突出显示ASP.NET帐户,并选中所需访问的框.
解决此问题的最简单方法(作为临时修复只是为了让网站启动并运行)我认为是给予该文件夹的完全权限,这意味着添加Everyone完全权限.它没用.我并不好奇为什么.
我知道这有什么风险,但我的问题是为什么这不起作用.为什么我仍然会看到相同的错误消息?
我可以RDP到服务器并访问该文件没有问题.因此,我不认为这是服务器问题(对于ServerFault或SuperUser).
我怀疑它在.NET中是一种保护.以同样的方式(如果我没记错),我们必须在IIS中设置特殊权限以允许ASP中的父路径.
我需要做什么?
编辑
我已经将网站上传到另一台服务器并且同样的问题仍然存在,这表明该故障与计算机没有任何关系,但更多是由于.NET或IIS
IIS设置为使用集成管理管道(非经典),我尝试添加NETWORK SERVICE和IUSR的权限.
解决方案很奇怪......我不明白为什么/如何,但我明白是什么。我不知道这是否对其他人有帮助,但无论如何我已经发布了答案
该应用程序允许上传图片,这些图片存储在
C:\someUploads
Run Code Online (Sandbox Code Playgroud)
加载网站时,它将文件从 C:\someUploads 复制到原始帖子中所示的网站路径。
这就是问题发生的地方。我删除了网站路径中的所有图像(如原始帖子所示)并重新启动了网站,它就正常工作了,按预期复制了所有文件。我关闭了网站,重新启动了 IIS 和应用程序池(回收),它仍然有效。
| 归档时间: |
|
| 查看次数: |
808 次 |
| 最近记录: |