这被证明是我最不喜欢的错误信息,我曾经遇到过,因为它最近多次抬头,更糟糕的是,似乎并没有真正说明问题所在。
Could not determine storage version; a valid storage connection or a version hint is required.
现在,这实际上已经出现了3次:生产数据库服务器(控制台应用程序触发它),生产网络服务器(asp.net网络表单应用程序)和开发网络服务器(asp.net网络表单应用程序)。可能会影响数据库服务器,但由于控制台应用程序是关于向用户发送电子邮件,我没有将其包含在该位置。
首先是生产数据库服务器。我做了很多搜索修复此消息,修复它的一件事是转到machine.config文件并删除" extra" dbfactories节点("额外"因为我认为它首先存在,但是IBM DB2驱动程序添加了一个用于放置自身的节点)。生产Web服务器,完全相同的情况(它发生在真正的实时之后,他们安装了DB2驱动程序。如果我没有在数据库中看到它,那会非常有趣吗。)
因此,当我们构建dev服务器时,只要对主dbcontext执行了context.set.Where调用,我就会再次开始运行此消息。 DB2驱动程序也安装在这个环境中,但是,当我查看machine.config文件时,只有一个dbfactory节点(并且它不包含对DB2驱动程序的引用)。 / p>
现在,值得一提的一点是,对于连接字符串,我们将它们存储在环境变量中(将其保留在web.config之外,应该使迁移到其他实例更容易,等等)。但是,这在生产和我的本地机器上完美无缺。实际上,我更新了本地机器的环境变量,以便使用dev数据库的连接字符串,并且加载正常。
哦,实体框架是6.1.3。我首先使用数据库(我猜?我真的只是对类有DbContext / DbSet)所以没有edmx或任何处理数据库配置的文件。
基于所有这一切,我觉得这又是另一个古怪的配置项目,但从我可以告诉我已经用尽我在网上发现的所有项目来分类它。有没有办法找出真正的错误是什么(比如两个生产服务器是由多个dbfactory集合引起的)?