首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Azure SQL MultipleActiveResultSets

Azure SQL MultipleActiveResultSets
EN

Stack Overflow用户
提问于 2018-10-21 15:53:22
回答 1查看 1.6K关注 0票数 0

由于某些原因,Azure SQL似乎没有在我的dotnet核心应用程序的连接字符串中选择我的MultipleActiveResultSets=True。

我的应用程序连接字符串如下所示

    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中看到任何错误,因为正常情况下,它会警告您不等待异步方法。使用await更新了方法,并添加了OnTokenValidated = async上下文。现在一切都好了。

EN

回答 1

Stack Overflow用户

发布于 2018-10-22 01:54:58

在前一个操作完成之前在此上下文上启动的第二个操作。不能保证任何实例成员都是线程安全的。

是EF错误,而不是SQL Server错误。所以MultipleActiveResultSets是无关紧要的。

在使用异步方法时,我的所有代码都在等待。。.I在我的DbContext中使用DI

因此,您的DI可能允许在请求之间共享DbContext实例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52913199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档