Я хочу знать, если кто-нибудь знает, потому что происходит это:ReadAsMultipartAsync не работает
, это не работает:
[AcceptVerbs("POST")]
public void AddFile()
{
if (!Request.Content.IsMimeMultipartContent("form-data"))
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
var streamProvider = new MultipartFormDataMemoryStreamProvider();
Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith(t =>
{
....
});
}
Но если он работает (является правильным решением?) :
[AcceptVerbs("POST")]
public Task AddFile()
{
if (!Request.Content.IsMimeMultipartContent("form-data"))
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
var streamProvider = new MultipartFormDataMemoryStreamProvider();
return Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith(t =>
{
....
});
}
Смешивание ContinueWith и асинхр/ожидают, приводит к проблемам, вобще 'ждут Request.Content.ReadAsMultipartAsync (streamProvider); 'и все в' .ContinueWith' просто пойдет после нормального кода 'await'. –
Но я использую .NET 4.0 и не могу этого сделать. Я считаю, что лучше использовать только возвращение. – Cristian18
Если возвращение работает для вас, все в порядке. В противном случае вы можете взглянуть на этот пакет, он в основном добавляет поддержку async/awend для .NET 4.0 www.nuget.org/packages/Microsoft.Bcl.Async –