У меня есть веб-API, использующий EF Core 2.0 на сервере SQL Server 2017.
Я недавно заметил, что мы никогда не включали множественные активные наборы результатов (MARS) в строке подключения.Поэтому я включил его, надеясь получить чуть лучшую производительность.
Сначала все выглядело нормально.Однако вскоре наши звонки на dbContext.SaveChangesAsync()
начали давать сбой с сообщением «Новая транзакция не разрешена, поскольку в сеансе запущены другие потоки».
Обычно это сообщение возникает, когда кто-то пытается сохранить изменениявнутри петли.Я этого не делаю - неудачный вызов API вставил один элемент в базу данных, сохранил изменения и возвратил.
Я проверил, что все async
правильно awaited
.Я попытался добавить явный вызов Wait()
к своему SaveChangesAsync
.Ничего не помогло.
Я снова выключил MARS, и все снова работает.Кто-нибудь знает, что могло вызвать это?