System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏

之前也遇到过这样的问题,一直未解决,最后重新安装系统,终于解决了。

没想到1个月以后,又出现了这种情况,让我奔溃,这次决定一定要找出原因;

调试后发现, connection.Open();以后报错,System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏,网上搜了很多都没有作用。

然后我发现 连接本地数据库是好的,连接远程数据库是报错了,但是在sql server Management中是好的  

然后在VS的服务资源管理器中找到了问题,发现VS2010 ,只要一连接远程数据库就立马关闭掉了,VS2008则是好的,最后发现在关掉的瞬间,会弹出一个提示,经过几次反复截图,终于找到了关键:



provider SSLProvider error:0

在网上一搜,豁然开朗,解决方法如下:

1:使用OLEDB ,不再使用SQLClient可以解决;

2:这个最方便,在开始运行栏中 输入 CMD,然后以管理员身份运行:输入:netsh winsock reset 后,系统提示需要重启电脑,重启后解决!




最后补充一下,这个命令的意思:

  netsh winsock reset命令,作用是重置 Winsock 目录。如果一台机器上的Winsock协议配置有问题的话将会导致网络连接等问题,就需要用netsh winsock reset命令来重置Winsock目录借以恢复网络。这个命令可以重新初始化网络环境,以解决由于软件冲突、病毒原因造成的参数错误问题。 netsh是一个能够通过命令行操作几乎所有网络相关设置的接口,比如设置IP,DNS,网卡,无线网络等,Winsock是系统内部目录,Winsock是Windows网络编程接口,winsock工作在应用层,它提供与底层传输协议无关的高层数据传输编程接口,reset是对Winsock的重置操作。当执行完winsock的命令重启计算机后,需要重新配置IP。


  • 6
    点赞
  • 35
    收藏
  • 打赏
    打赏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 14

打赏作者

Kimizhou_blog

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值