我的系统是win7 64位 系统 安装的是 Visual studio 2012。从SVN上下载了源码,一个B/S的系统,能正常加载登陆页,但在输入登录信息要登录的时候,就报错了:
--无可用源
System.AccessViolationException: 尝试读取或写入受保护的内存。
问了一下同组的人员,我们用的同样的源码,数据库也都是访问我的PC上的,但是其他人的可以正常访问。后来请教社河,试着把数据库连接字符串中的 IP地址,换成local,登录成功。现在问题可总结为:源码用IP访问本机数据库,源码报错;源码local访问数据库可正常运行。
到这步,问题可就出在了本机的IP上了,于是查了一下关于IP和报错的提示信息,终于找到了问题的解决办法:
netsh winsock reset --运行此命令,解决。
问题的根本原因不知道是为什么,但这行命令的作用会告诉我们,原因可能出在哪里:
netsh winsock reset命令,作用是重置 Winsock 目录。如果一台机器上的Winsock协议配置有问题的话将会导致网络连接等问题,就需要用netsh winsock reset命令来重置Winsock目录借以恢复网络。这个命令可以重新初始化网络环境,以解决由于软件冲突、病毒原因造成的参数错误问题。 netsh是一个能够通过命令行操作几乎所有网络相关设置的接口,比如设置IP,DNS,网卡,无线网络等,Winsock是系统内部目录,Winsock是Windows网络编程接口,winsock工作在应用层,它提供与底层传输协议无关的高层数据传输编程接口,reset是对Winsock的重置操作。
我的机器可能是因为,前些日子在IIS服务器上测试发布站的时候,对本机做过一些设置,导致了网络环境的错乱。希望能帮到遇到同样问题的童鞋!
我的异常-VS2012“System.AccessViolationException: 尝试读取或写入受保护的内存。”