今天在使用EF6 Code First时,出现如下错误,折腾了老半天。分享一下,帮后面的兄弟少走弯路。
PM> Enable-Migrations
Checking if the context targets an existing database...
使用“8”个参数调用“CreateInstanceFrom”时发生异常:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”
所在位置 E:....srcpackagesEntityFramework.6.1.3 oolsEntityFramework.psm1:809 字符: 31
+ $domain.CreateInstanceFrom <<<< (
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodTargetInvocation
解决方案
-
首先检查数据库连接字符串,确保配置无误
-
尝试修改数据库连接,发现将数据库连接改为
<add name ="MyDb" connectionString="Server=.;Database=MyDb;Integrated Security=True;" providerName="System.Data.SqlClient"/>
可以正常运行! 如果不能改成这种连接字符串,继续往下
-
如果是64位系统,将编译目标平台设置为AnyCPU,“清理”项目生成的文件
-
以管理员身份运行cmd.exe,执行netsh winsock reset后重启操作系统
参考:
VS2010 64位系统 连接数据库时报“连接数据库 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”的错误 解决方法
http://blog.csdn.net/songling418/article/details/17107169
AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
http://blog.csdn.net/u010906068/article/details/40583777