Asp.net Request.Content.ReadAsMultipartAsync(提供程序)

Asp.net Request.Content.ReadAsMultipartAsync(提供程序),asp.net,file,http,asp.net-web-api,Asp.net,File,Http,Asp.net Web Api,我正在使用ASP.NETWebAPI。我有以下代码保存传入文件,然后获取文件名 MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(HttpContext.Current.Server.MapPath("~/Files")); Task<IEnumerable<HttpContent>> task = Request.Content.ReadAsMultipartAs

我正在使用ASP.NETWebAPI。我有以下代码保存传入文件,然后获取文件名

MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(HttpContext.Current.Server.MapPath("~/Files"));
Task<IEnumerable<HttpContent>> task = Request.Content.ReadAsMultipartAsync(provider);

return task.ContinueWith<string>(contents =>
{ 
    string filename = provider.BodyPartFileNames.First().Value;
MultipartFormDataStreamProvider=new MultipartFormDataStreamProvider(HttpContext.Current.Server.MapPath(“~/Files”);
Task Task=Request.Content.ReadAsMultipartAsync(提供程序);
返回任务。继续(内容=>
{ 
字符串文件名=provider.BodyPartFileNames.First().Value;
当我在托管时运行这个程序时,我得到了正确的文件名,但似乎没有保存该文件

files.Exists(filename)返回false

不过,这在当地效果很好。如果您有任何想法,我们将不胜感激(一整天都在这里…)

如果您想了解更多信息,请告诉我


谢谢。

它在开发环境中工作,但不在开发环境之外?我会首先查看您的NetworkService、IIS_IUSRS或任何正在编写web API的用户的写入权限。您可能希望在Fiddler中查看您的请求,以确保您的文件在运行过程中看起来正常。@SteveHook我发现了问题所在,然后忘了更新这篇文章。但你说得对-这是一个权限问题(这仍然不明白为什么,因为我可以保存到该路径,只需使用从asp:file upload控件保存的其他代码即可)它在开发环境中工作,但不在开发环境之外?我会首先查看您的NetworkService、IIS_IUSRS或任何正在编写web API的用户的写入权限。您可能希望在Fiddler中查看您的请求,以确保您的文件在运行过程中看起来正常。@SteveHook我发现了问题所在,忘了升级我读了这篇文章。但你说得对-这是一个权限问题(这仍然不明白为什么,因为我可以保存到该路径,只需使用从asp:file upload控件保存的其他代码即可)