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


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

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

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

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

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

     

    provider SSLProvider error:0

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

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

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

     

     (windows键+R)

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

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

  • 相关阅读:
    机会的三种境界
    常用“快”捷键
    心路历程
    中兴笔试及答案
    浅谈oracle中row_number() over()分析函数用法
    IE的F12开发人员工具不显示问题
    1002.A + B Problem II --大数问题
    6470.count --快速矩阵幂
    4151.电影--贪心
    3070.斐波拉契数列--快速幂
  • 原文地址:https://www.cnblogs.com/ajunForNet/p/4137321.html
Copyright © 2020-2023  润新知