我用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.
异常详细信息:系统未授权访问异常:对路径"C:\inetpub\wwwroot\StockControl\temp\Book1.xls"的访问被拒绝。
ASP.NET未被授权访问请求的资源。请考虑向ASP.NET请求标识授予对该资源的访问权限。ASP.NET具有基进程标识(通常为IIS 5上的{MACHINE}\ASPNET或IIS 6和IIS 7上的Network Service,以及IIS 7.5上的已配置应用程序池标识)。如果应用程序通过进行模拟,身份将是匿名用户(通常是IUSR_MACHINENAME)或经过身份验证的请求用户。
若要授予ASP.NET对文件的访问权限,请在文件资源管理器中右键单击该文件,选择"属性"并选择"安全"选项卡。单击"添加"以添加相应的用户或组。突出显示ASP.NET帐户,并选中所需访问权限的框。
源错误:
执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来标识有关异常来源和位置的信息。
3条答案
按热度按时间wfveoks01#
我也有同样的问题。
已进行以下更改以解决此问题。
(1)我已经转到wwwroot文件夹。右键单击"安全"选项卡。提供ISUSER以设置对wwwroot文件夹的读写权限。
(2)已将应用程序池更改为单独的池,并将标识设置为应用程序池标识。
qyuhtwio2#
一个非常简单的修复程序来解决我的问题,在IIS中,我必须右键单击应用程序池,并将.NET Framework V4设置为集成而不是经典/
另一种解决方案是将正在访问的特定文件夹设置为对需要它的用户具有读/写权限,这可以由唯一用户完成,也可以由组织内的一组用户完成
qnzebej03#
将应用程序池标识更改为本地系统对我很有效