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, чтобы разблокировать файл, который я пытаюсь скопировать.

Кто-нибудь может объяснить, что здесь происходит?

0 ответов

Другие вопросы по тегам