HttpWebRequest.GetResponse()调用时报错

测试发布一个Winform程式时,出现连接关闭的异常信息.

The underlying connection was closed: Unable to connect to the remote server.

作业环境: VS2008, WINDOWS2008, IIS6.0, .NET 3.5 . 

我是之前使用正常, 在使用了一次360的清理后, 才出现这个异常. 开始以为是禁用了某个服务, 恢复所有被禁的服务后,还是报错. 

尝试重装.net3.5, 问题还是存在. 

查了很久的资料, 有说是是设置的代理服务器异常的, 也有说防火墙的原因的. 最后找一个正确的原因:安全协议问题. 

http://www.mamicode.com/info-detail-1511579.html

增加以下代码后, 测试正常. 

            ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls; 

之后另一支程式使用相同功能也出现了错误, 而且下载用onceclick发布的程式时, 提示下载失败. 网上搜来的方法均不能解决问题. 以下是搜到加代码的方法, 但是没有效果. 

            //req.Credentials = CredentialCache.DefaultCredentials;
            //ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
            //ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
            //req.KeepAlive = false;

也有说是response连接短时间多次连接会造成连接中断, 需要每次开启后主动关闭, 但目前是连接都无法建立, 只能是以后注意了. 

尝试在VS中修改Build时所使用.net版本, 结果发现修改为.net2.0后使用正常. 基本上可以确认是.net3.5出了问题,但尝试过重装.net, 不知道为什么没有用. 现在只剩下重装系统的选项了, 悲剧. 

你可能感兴趣的:(C#)