我有和ASP Web API,我试图从那里的电话中返回一个文件。
在我的服务器上,我不断收到错误:
System.UnauthorizedAccessException:访问路径 ' E:\数据\文档\特定\ document.pdf'被拒绝。在 System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)
在System.IO.FileStream.Init(字符串路径,FileMode模式,FileAccess 访问,Int32权限,布尔useRights,FileShare共享,Int32 bufferSize,FileOptions选项,SECURITY_ATTRIBUTES secAttrs,String msgPath,Boolean bFromProxy,Boolean useLongPath,Boolean checkHost)
在System.IO.FileStream..ctor(字符串路径,FileMode模式,FileAccess 访问,FileShare共享,Int32 bufferSize,FileOptions选项,字符串 System.IO.FileStream..ctor中的msgPath,Boolean bFromProxy(String path,FileMode模式)at GIS.Backend.Assets.BLL.Document.GetByUrl(String url)at at GIS.Backend.Assets.WebApi.Controllers.DocumentController.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设置为具有对文档'的读取权限。文件夹,所以它应该能够正确读取吗?
答案 0 :(得分:2)
使用FileAccess.Read标志打开Stream
FileStream fs = new FileStream(fullUrl, FileMode.Open, FileAccess.Read);