WebForms: CopyToAsync никогда не завершается, когда UseTaskFriendlySynchronizationContext true
Я только начал внедрять асинхронные методы в приложение ASP.NET Web Forms.
У меня есть следующий код...
using (Stream tempStream = File.Create(tmpFile))
{
using (Stream docStream = await AttachmentOperations.OpenReadAsync(document.Attachment))
{
await docStream.CopyToAsync(tempStream);
}
}
OpenReadAsync имеет код, который возвращает файл, как так....
Stream stream = File.Open(fileName, FileMode.Open);
return Task.FromResult(stream);
... код работает нормально, когда я добавляю следующие настройки в appSettings...
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="false" />
Однако мне действительно нужно, чтобы этот параметр был истинным, чтобы разрешить доступ к HttpContext в асинхронных вызовах. С aspnet:UseTaskFriendlySynchronizationContext, установленным в true, вызов CopyToAsync никогда не завершается, мне нужно завершить процесс IISExpress, чтобы разблокировать файл, который я пытаюсь скопировать.
Кто-нибудь может объяснить, что здесь происходит?