繁体   English   中英

ASP.NET访问临时文件夹时无权访问请求的资源

[英]ASP.NET is not authorized to access the requested resource when accessing temp folder

我使用 ASP.NET 和 C# 创建的应用程序使用临时路径在读取文档时存储文档,然后在以下情况后将其删除:

string path = string.Concat((Server.MapPath("~/temp/" + FileUpload1.FileName)));

Array.ForEach(Directory.GetFiles((Server.MapPath("~/temp/"))), File.Delete);

感谢您的任何帮助。 StockControl 文档是一个示例,可以从网络上的多台计算机导入。 根据错误消息,我的文件似乎没有上传并保存到临时目录中……

调试时的本地路径(WORKS):

C:\Users\USER\Documents\Visual Studio 2013\Projects\WebApplication5\WebApplication5\temp

应用程序已成功部署,但是当我附加文件并按“导入”时,我收到一条错误消息:拒绝访问路径“C:\.netpub\wwwroot\StockControl\temp\Book1.xls”。

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

异常详细信息:System.UnauthorizedAccessException:拒绝访问路径“C:\.netpub\wwwroot\StockControl\temp\Book1.xls”。

ASP.NET 无权访问请求的资源。 考虑将资源访问权限授予 ASP.NET 请求身份。 ASP.NET 有一个基本进程标识(通常是 {MACHINE}\AS.NET IIS 5 或网络服务 IIS 6 和 IIS 7,以及配置的应用程序池标识 IIS 7.5)如果应用程序不模拟,则使用如果应用程序模拟通过,身份将是匿名用户(通常是 IUSR_MACHINENAME)或经过身份验证的请求用户。

要授予 ASP.NET 对文件的访问权限,请在文件资源管理器中右键单击该文件,选择“属性”和 select 安全选项卡。 单击“添加”以添加适当的用户或组。 突出显示 ASP.NET 帐户,并选中所需访问权限的复选框。

来源错误:

在当前 web 请求的执行过程中产生了未处理的异常。 可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。

我有同样的问题。

进行了以下更改以解决问题。

(1)我去了wwwroot文件夹。 右键单击和安全选项卡。 提供IISUSER以设置对wwwroot文件夹的读写权限。

(2)将应用程序池更改为单独的池,并将标识设置为应用程序池标识。

一个非常简单的解决方案来解决我的问题,在IIS中,我必须右键单击Application Pools并将.NET Framework V4设置为Integrated而不是classic /

另一种解决方案是将正在访问的特定文件夹设置为对需要它的用户进行读/写,这可以由唯一用户或组织内的一组用户完成。

将应用程序池身份更改为本地系统对我有用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM