本人在做商用项目的推送消息功能时,借助第三方推送服务。这里避免有打广告的嫌疑,就不报名字了。由于是通过调用API接口,所以Post方法是自己写的,但是在开发环境是可以正常推送的,但是一上线就出各种问题。楼主猜测可能是开发环境测试时,推送的消息比较少,而线上推送消息很多,从而导致和连接数相关的错误。下文很有帮助,记录于此。
报的错误为:1. "基础连接已经关闭: 发送时发生错误";
2016年10月25日18:56:53更新
后来本篇的所有方法都尝试了,发现最后也没解决问题。最后问题终于解决了,解决方案还是Google出来的:
之前的写法:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3
能解决问题的写法:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
分析:因为请求的url是基于https的,所以Post请求时必须添加ServicePointManager.SecurityProtocol
。但选择哪个协议呢?一开始看到项目里面都是基于ssl的,索性也用了ssl,但是没有效果,最后干脆直接把所以的协议枚举用或的形式全都写出来,成功了。
转自:http://www.crifan.com/fixed_problem_sometime_httpwebrequest_getresponse_timeout
【问题】
用C#模拟网页登陆,其中去请求几个页面,会发起对应的http的请求request,其中keepAlive设置为true,提