0

我使用 Webapi 2 制作了一个 api。它是对服务的控制器调用,它调用对存储库的调用。

我有 Post 方法,在存储库中我正在执行一个 url 来获取一个文档流,我最终将它保存到一个 locationHostingEnvironment.MapPath("~/Uploads/") + documentname;中。

此位置在存储库代码中用于使用该位置将流保存到文件中并仅通过该位置访问:

using (var fileStream = new FileStream(document.DocumentPath, FileMode.Open, FileAccess.Read))
{
    ....
}

我需要这样做,因为其他 api 调用需要再次使用此文件的流进行进一步处理。

当我在本地计算机上运行服务器实例时,一切正常,但是当此服务托管到服务器中时,我收到500 内部服务器错误。FileNotFoundException。

我无权访问服务器所以我无法弄清楚它的真正原因是什么。我的想法是我的本地文件系统可以访问服务,但我可能需要在 server.xml 中设置一些额外的权限。对此的任何想法将不胜感激。

4

2 回答 2

1

您可以尝试将文件保存在 App_Data 文件夹中吗?如果您没有该文件夹,您可以通过右键单击项目 > 添加文件夹 > ASP.NET 文件夹 > App_Data 来创建它。

您可以通过以下方式访问该文件夹(假设您创建了文件夹“上传”):

字符串根 = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/uploads");

于 2016-07-22T19:51:52.720 回答
0

将 IIS_IUSRS 添加到该文件夹​​并设置相关权限应该可以完成这项工作。希望这可以帮助。

于 2016-07-20T07:54:09.553 回答