我有和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”文件夹具有读取权限,因此它应该能够读取,对吗?
2条答案
按热度按时间brgchamk1#
使用FileAccess.Read标志打开流
bejyjqdl2#
File.Open
还需要FileAccess.Read
,否则服务器将引发System.UnauthorizedAccessException
异常