async void
предназначен только для обработчиков событий .Он запускает задачу «забей и забудь», которую нельзя ожидать или отслеживать, и которая все еще может выполняться долго после того, как запрос ASP.NET завершится и его контекст будет удален.
Правильный синтаксис для асинхронного методаэто ничего не возвращает, это async Task
.Сигнатура метода должна измениться на
public async Task ImportUploadTextFile(string fileName)
, и тот, кто вызывает ImportUploadTextFile
, должен ждать ее.Если оно вызывается в действии контроллера, само действие должно быть асинхронным и ожидать его, например:
public async Task Post(whatever)
{
....
await ImportUploadTextFile(fileName);
}