读取文件

时间:2017-05-22 11:53:52

标签: c# asp.net file asp.net-web-api io

我有和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设置为具有对文档'的读取权限。文件夹,所以它应该能够正确读取吗?

1 个答案:

答案 0 :(得分:2)

使用FileAccess.Read标志打开Stream

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