我有一个ASP.NET应用程序,它使用Entity Framework 6来访问存储在Azure SQL数据库中的数据。我在连接数据库时遇到了一些问题。
如果我在Azure上生成一个新的数据库实例,在调试器中启动我的应用程序并逐步执行它,我将看到它连接没有问题,可以访问种子数据,一切都很好(插入工作没有问题,但无论我是否改变数据都会发生这种情况)。
但是,如果我重新启动调试器,并且在我的应用程序重新启动后尝试连接到数据库之后的所有点,连接将失败。如果我设置断点并查看Locals窗口中的Context值,则会将以下错误作为所有DbSets的值:
由于先前的功能评估,功能评估被禁用 时间到。您必须继续执行以重新启用功能 评价。
尽管在逻辑上有一个try / catch,但不会抛出任何异常。如果我进入/退出/覆盖此应用程序,应用程序将无限期地运行并且永远不会完成。
如果我回滚到$ InitialDatabase然后重新应用自动迁移(通过update-database),我仍然无法连接到数据库,但是如果我在Azure中删除数据库,请启动一个新数据库,在Web.config文件中设置新的连接信息并重新执行,它就像魅力一样。在此之后,尽管应用程序没有其他更改,它仍然无法再次工作。
这里发生了什么,为什么会出现这种情况?如果这里存在潜在的问题,我怎么能告诉它是什么以及如何解决它?
谢谢!
答案 0 :(得分:0)
在没有取得进展之后,我回滚到我的代码的先前版本,从大约三周后工作正常。我已经更新了所有逻辑以匹配最新版本中的内容,我还没有更新任何程序集。它现在完美地工作并且每次连接都很好,所以显然这是一个尚未识别的依赖关系的错误。
如果我确定哪一个,我会相应地更新这个答案。