asp.net 阅读文件时出现UnauthorizedAccessException异常

shyt4zoc  于 2023-01-18  发布在  .NET
关注(0)|答案(2)|浏览(131)

我有和ASP Web API,我正尝试从那里的调用返回一个文件。
在我的服务器上,我不断得到错误:
系统未授权访问异常:访问路径“E:\Data\Docs\specific\document.pdf”被拒绝。在System.IO.__错误。WinIOError(Int32错误代码,字符串可能是完整路径)
at System.IO.FileStream.Init(字符串路径、文件模式模式、文件访问权限、Int32权限、布尔值useRights、文件共享共享、Int32缓冲区大小、文件选项选项、SECURITY_ATTRIBUTES secAttrs、字符串消息路径、布尔值bFromProxy、布尔值useLongPath、布尔值checkHost)
位于System.IO.FileStream..ctor(字符串路径、文件模式、文件访问权限、文件共享共享、Int32缓冲区大小、文件选项选项、字符串消息路径、布尔bFromProxy)位于GIS.后端.资产.BLL.文档.GetByUrl(字符串url)位于GIS.后端.资产.WebApi.控制器.文档控制器.Get(字符串url)
我猜这就是问题所在

string documentenPath = System.Web.Configuration.WebConfigurationManager.AppSettings["DocumentenDir"].ToString();
        string fullUrl = documentenPath + url;

        Stream file = new FileStream(fullUrl, FileMode.Open);
        return file;

我已经将IIS_IUSRS设置为对“Docs”文件夹具有读取权限,因此它应该能够读取,对吗?

brgchamk

brgchamk1#

使用FileAccess.Read标志打开流

FileStream fs = new FileStream(fullUrl, FileMode.Open, FileAccess.Read);
bejyjqdl

bejyjqdl2#

File.Open还需要FileAccess.Read,否则服务器将引发System.UnauthorizedAccessException异常

FileStream fileStream = System.IO.File.Open(fullUrl, FileMode.Open, FileAccess.Read);

相关问题