我有一个 Azure Web 应用程序。直到几天前,我才有了一个运行良好的简单文件上传表单。
大约一周前,它开始导致以下错误:
<小时/>访问路径“D:\home\site\wwwroot\Accounts\XXX\test.sqlite”被拒绝。
描述:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。
异常详细信息:System.UnauthorizedAccessException:对路径“D:\home\site\wwwroot\Accounts\XXX\test.sqlite”的访问被拒绝。
ASP.NET 无权访问所请求的资源。考虑向 ASP.NET 请求标识授予对资源的访问权限。 ASP.NET 具有一个基本进程标识(在 IIS 5 上通常为 {MACHINE}\ASPNET,在 IIS 6 和 IIS 7 上通常为网络服务,在 IIS 7.5 上为配置的应用程序池标识),如果应用程序未进行模拟,则使用该标识。如果应用程序通过 进行模拟,则身份将是匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。
<小时/>我知道如果这是在我的本地计算机或更传统的托管提供商上运行,我可以右键单击该文件夹并管理权限。
但我有一个托管的 Azure Web 应用程序。我可以使用以下工具:
- IIS 远程管理器
- 新的 Azure 门户(具有沙箱命令 控制台)
- FTP
我该如何解决这个问题?我应该注意到,我尝试将源代码重新部署到另一个 Azure Web 实例...并且该表单工作正常!-大约 2 天,然后开始返回相同的错误。
如果有一个非常基本的教程,甚至可能带有屏幕截图,我们将不胜感激。我看到这个问题被问了很多,但对于作为 Azure Web 应用程序运行的网站却没有解决。
最佳答案
您应该将文件存储在 Azure 存储中,而不是虚拟目录下,因为这可能会导致 IIS 站点重新启动
关于c# - Microsoft Azure Web App - ASP.NET 无权访问请求的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37466122/