我在ASP.NET Web API中执行以下任务,将传入的请求保存为文件。它似乎在我的本地工作正常,但在托管服务器上,文件没有保存,我的日志表明状态是Faulted。
据我了解,这与未处理的异常有关。我如何找出这些例外是什么,以便我可以解决它们?
// Save file
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;
FileInfo file = new FileInfo(filename);
Log.LogMessage("Status: " + task.Status.ToString() + " File Exists: " + file.Exists);
// Delete excel file when complete.
File.Delete(filename);
// Return message to user.
return "Complete";
}, TaskScheduler.FromCurrentSynchronizationContext());
答案 0 :(得分:3)
您需要有另一个延续来查看异常:
Task task1 = () => ....;
task1.ContinueWith((t) => if(t.IsFaulted) Trace.WriteLine(t.Exception.ToString()));
return task1;
所以诀窍是仍然返回初始任务,同时仍然在其上定义延续。