Azure SQL MultipleActiveResultSets - PullRequest
       32

Azure SQL MultipleActiveResultSets

0 голосов
/ 21 октября 2018

По какой-то причине Azure SQL, похоже, не выбирается с моим MultipleActiveResultSets = True в строке подключения моего основного приложения dotnet.

строка подключения моих приложений выглядит следующим образом

    Server=tcp:xxx.database.windows.net,1433;Initial Catalog=xxx;User ID=xxx;Password=xxxxx;MultipleActiveResultSets=True;Encrypt=True;"

Я все еще получаю эту ошибку

    A second operation started on this context before a previous operation completed. Any instance members are not guaranteed to be thread safe.

Весь мой код ожидает при использовании асинхронных методов, поэтому я понятия не имею, что еще делать, потому что этот код работает с локальным SQL.

Яиспользуя DI с моим DbContext и добавляя сервис, подобный этому

    services.AddDbContext<Models.Database.DBContext>();

Любая помощь будет принята с благодарностью.

ОБНОВЛЕНИЕ

Проблема была в моем Startup.cs.Я скучаю по этому.У OnTokenValidated был метод, который вызывал dbcontext, но я так и не дождался результата.В среде IDE не было ошибок, так как обычно она предупреждает вас о том, что не ожидает асинхронный метод.Обновил метод с ожиданием и добавил контекст OnTokenValidated = async.Теперь все в порядке.

1 Ответ

0 голосов
/ 21 октября 2018

Это

Вторая операция началась в этом контексте до завершения предыдущей операции.Ни один из членов экземпляра не гарантированно является потокобезопасным.

Это ошибка EF, а не ошибка SQL Server.Так что MultipleActiveResultSets не имеет значения.

Весь мой код ожидает при использовании асинхронных методов.,.Я использую DI с моим DbContext

Так что, вероятно, ваш DI позволяет разделять экземпляр DbContext между запросами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...