首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RNDIS丢失连接/延迟问题

RNDIS丢失连接/延迟问题
EN

Stack Overflow用户
提问于 2011-12-21 03:41:35
回答 2查看 476关注 0票数 2

我们有一个用C#编写的临时SOAP客户端,可以从windows移动设备连接到桌面上的CXF服务。当此设备通过ActiveSync连接时,它会为RNDIS连接创建一个虚拟适配器。此虚拟适配器将网关IP分配给主机169.254.2.2

当我们尝试使用C#客户端中的主机名或主机的IP设置为地址进行连接时,一切都工作得很好。但是,当我们将IP设置为RNDIS网关(169.254.2.2)时,服务器端的连接会周期性地丢失。CXF服务不断尝试连接,并最终成功,但这会导致连接速度大大减慢。我们在移动CXF端的日志中没有报告错误,只在C#服务器上报告了错误。

有谁知道为什么会发生这种事吗?在排除169.254.2.2之前,我们需要断言它不可能用作有效的端点。

哦,以防有帮助,在ActiveSync连接之后,通过DHCP向C#客户端授予IP 169.254.2.1

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-31 09:09:53

我找到了问题的原因,但我觉得回答起来很糟糕,因为我怀疑其他人可能会猜到这就是问题所在:

在我们的CXF服务器上,我们有一个对InetAddress.getHostName()的调用,它基本上对从C#客户端发送的请求执行反向DNS查找。

当使用DNS地址时,DNS169.254.2.1(当然)中没有条目,因此ActiveSync类将挂起,直到方法超时(这需要大约20秒才会向C#客户端写入响应)。在每次请求20秒时,这会导致大量的速度减慢和丢失连接错误。

我们通过将调用移动到半秒后强制结束的executor线程修复了这个问题。因为它在另一个线程中,减速变得不存在。很高兴这一切都结束了!

票数 0
EN

Stack Overflow用户

发布于 2012-01-12 05:29:56

我想到的第一个问题是来自DHCP服务器的IP的租用时间即将到期,而CXF服务器必须等待DCHP服务器发出新的租用。

如果您知道IP不会更改,请尝试延长DCHP租期,并尽可能使用静态IP。这至少会消除故障点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8580990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档