ServicePointManager.SetTcpKeepAlive

时间:2019-05-29 10:48:20

标签: c# uwp

我一直在尝试使tcp保持活动数据包使用System.Net.Http.HttpClient发送。据我所知,唯一的方法是使用ServicePointManager.SetTcpKeepAlive(true, X, Y)。在LinqPad脚本中对此进行测试时,尽管不一致,但我可以使其正常工作。例如,如果我在调用ServicePointManager.FindServicePoint(myUrl)之前先手动调用ServicePointManager.SetTcpKeepAlive,那么它将无法工作,我认为是由于缓存,但是,如果这是第一件事,它通常是可以工作的(我是相当确定这里还是不一致的)。请注意,我正在使用Wireshark检查它是否有效。

但是,当我尝试在真正的UWP应用程序中使用它时,它将失败。我尝试将其设置为第一个App.xaml.cs构造函数,并且在实例化HttpClient和介于两者之间的所有位置之前没有任何运气。

我想念什么吗?

请注意,我意识到可以直接使用HttpWebRequest并将其设置在ServicePoint实例上,但是我想知道为什么在采用这样的方法之前首先不能使用它。

编辑:我最终尝试使用HttpWebRequestServicePoint.SetTcpKeepAlive来实现这一点,并且在编译时,当它被Operation is not supported on this platform异常调用时失败。我猜这意味着这里的主要问题可能是UWP不支持发送TCP保持活动数据包?

0 个答案:

没有答案