Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法确定存储版本;需要有效的存储连接或版本提示_C#_Asp.net_Entity Framework - Fatal编程技术网

C# 无法确定存储版本;需要有效的存储连接或版本提示

C# 无法确定存储版本;需要有效的存储连接或版本提示,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,事实证明,这是我遇到过的最不喜欢的错误消息,因为它最近多次抬头,甚至更糟,似乎并没有真正说明问题所在 Could not determine storage version; a valid storage connection or a version hint is required. 现在,这实际上已经出现了3次:生产数据库服务器(控制台应用程序触发它)、生产web服务器(asp.net web表单应用程序)和开发web服务器(asp.net web表单应用程序)。可能也会影响db服务器

事实证明,这是我遇到过的最不喜欢的错误消息,因为它最近多次抬头,甚至更糟,似乎并没有真正说明问题所在

Could not determine storage version; a valid storage connection or a version hint is required.
现在,这实际上已经出现了3次:生产数据库服务器(控制台应用程序触发它)、生产web服务器(asp.net web表单应用程序)和开发web服务器(asp.net web表单应用程序)。可能也会影响db服务器,但因为console应用程序是关于向用户发送电子邮件的,所以我没有将其包含在该位置

首先是生产数据库服务器。我对这条消息进行了大量的搜索,找到了一个修复方法,那就是转到machine.config文件中,去掉“extra”dbfactories节点(“extra”,因为我认为它是最先出现的,但IBM DB2驱动程序添加了一个来放置它自己)。生产web服务器,完全相同的情况(发生在它真正上线之后,他们安装了DB2驱动程序。如果我还没有在数据库中看到它,那将是非常有趣的一段时间)

因此,当我们构建dev服务器时,只要对主dbcontext执行context.set.Where调用,我就开始再次遇到此消息。DB2驱动程序也安装在这个环境中,但是,当我查看machine.config文件时,只有一个dbfactory节点(它不包括对DB2驱动程序的引用)

现在,值得一提的一个警告是,对于连接字符串,我们将它们存储在环境变量中(将其保存在web.config之外,应该使迁移到其他实例更容易,等等)。然而,这在生产和我的本地机器上都能很好地工作。事实上,我更新了本地机器的环境变量,以使用dev数据库的连接字符串,它可以正常加载

哦,实体框架是6.1.3。我首先使用数据库(我想?我实际上只是针对类使用DbContext/DbSet),所以没有edmx或任何处理数据库配置的文件


基于所有这些,我觉得这又是一个奇怪的配置项目,但从我所能说的,我已经用尽了我在网上找到的所有项目来分类它。有没有办法找出真正的错误是什么(比如两台生产服务器是如何由于一个以上的dbfactory集合造成的)?

Fwiw(2012):2014:连接字符串没有问题;从我的工作机器(不在开发服务器上)本地运行时工作。两者都配置了相同的环境变量。不幸的是,我也没有lsml文件。忘记了这个,但我也看了这个,但我在数据库中没有迁移(prod或dev)。Fwiw(2012):2014:连接字符串很好;从我的工作机器(不在开发服务器上)本地运行时工作。两者都配置了相同的环境变量。不幸的是,我也没有lsml文件。我忘记了这一个,但我也看过这一个,但我在数据库(prod或dev)中没有迁移。