【发布时间】:2015-01-03 04:17:21
【问题描述】:
我使用 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:\inetpub\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:\inetpub\wwwroot\StockControl\temp\Book1.xls' 被拒绝。
ASP.NET 无权访问请求的资源。考虑 向 ASP.NET 请求授予对资源的访问权限 身份。 ASP.NET 有一个基本进程标识(通常 IIS 5 上的 {MACHINE}\ASPNET 或 IIS 6 和 IIS 7 上的网络服务,以及 IIS 7.5 上配置的应用程序池标识),如果 该应用程序不是模拟的。如果应用程序是 冒充 via ,身份将是 匿名用户(通常是 IUSR_MACHINENAME)或经过身份验证的用户 请求用户。
要授予 ASP.NET 对文件的访问权限,请右键单击文件中的文件 资源管理器,选择“属性”并选择“安全”选项卡。点击“添加” 添加适当的用户或组。突出显示 ASP.NET 帐户, 并选中所需访问权限的复选框。
来源错误:
在执行过程中产生了一个未处理的异常 当前的网络请求。有关原产地和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
【问题讨论】:
-
完全按照错误消息所说的去做:将
添加到您的 web.config -
错误表示访问路径被拒绝。没有比这更明显的了 :) 确保您的应用程序池身份可以访问您的应用程序的整个根文件夹。