最近用c#做了一个客户端软件,虽然做软件很多年,但用c#做客户端还真的是第一次,然后和大多数新手一样,没把反编译措施做好,软件一发布就被人给破解了,然后又马不停蹄的改成了aot模式,改了之后,问题出现了一大堆,主要是跟json的解析相关的,由newton改成text.json之后就好了。最后只剩下一个问题,就是我们的软件在家用电脑上正常使用,在win server 2012 r2上正常使用,但是在win server 2022上向某个URL提交数据时,出现了以下异常:
现有连接已被远程主机强制关闭
System.IO.IOException: Unable to read data from the transport connection
1,经过google,bing,baidu之后,尝试用修SSL属性的方法来解决,很不幸,失败了。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls13 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
2,再次搜索之后,尝试把PostAsync改成SendAsync,也不行。
3,然后又按网上的方法,把httpclient的实例改成单例,还是不行。
4,再次搜索,修改httpclient的长连接属性,还是不行。
ClientSingleton().DefaultRequestHeaders.ConnectionClose = false;
在把微软全家都骂了一顿之后,发现只有这一个WEB请求失败了,其他都是好的,非常不自信的觉得可能是post的数据过大了,因为有8k(其实8K也没问题啊,自古以来post 8k数据都没问题啊,况且在别的电脑上post 8k都是好的),于是死马当活马医,把数据由8k逐步到了1k,我拷,数据提交成功了。
今天先记下来,明天再来查明为啥只能了post 1k数据的原因,这真的是震碎了我的三观。
3万+

被折叠的 条评论
为什么被折叠?



