连接到 .NET REST 端点的 Android 中的 Peer 错误导致间歇性连接重置
Posted
技术标签:
【中文标题】连接到 .NET REST 端点的 Android 中的 Peer 错误导致间歇性连接重置【英文标题】:Intermittent Connection Reset by Peer errors in Android connecting to .NET REST endpoint 【发布时间】:2012-06-16 19:18:38 【问题描述】:通过 SSL 连接到我的 IIS REST 服务的设备出现间歇性错误。 我的应用程序运行良好,但有时我会遇到此异常。它处理得当,不会关闭应用程序..
但我想知道这是什么意思,是否有任何方法可以解决它?目前,它会导致检索数据的延迟。此外,它会淹没日志,我无法真正忽略它。我想知道我是否可以改善这种情况。
当我处理 REST 服务时,这是我应该期待的吗? 我的服务器在 Amazon EC2 上。
读取错误:ssl=0x1211a88:系统调用期间的 I/O 错误,连接 由同行重置
javax.net.ssl.SSLException:读取错误:ssl=0x1211a88:I/O 错误 在系统调用期间,对等方重置连接 org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_read(Native 方法)在 org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:671) 在 libcore.io.Streams.readSingleByte(Streams.java:41) 在 org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:655) 在 libcore.io.Streams.readAsciiLine(Streams.java:201) 在 libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:544) 在 libcore.net.http.HttpEngine.readResponse(HttpEngine.java:784) 在 libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274) 在 libcore.net.http.HttpURLConnectionImpl.getResponseMessage(HttpURLConnectionImpl.java:475) 在 libcore.net.http.HttpsURLConnectionImpl.getResponseMessage
这不是我可以复制的。不是权限或类似的东西。这是间歇性问题。每分钟连接 200 台设备,我每天都会看到其中的 1000 台。
【问题讨论】:
我只能说“REST服务”不是问题原因。 同时检查***.com/questions/8472556/… 我很确定不是,我只是想指出这是我的服务,如果有可能是服务器端问题,那么我可以以某种方式解决它。我觉得这只是一个沟通问题,但我看到很多,想知道是否有人有经验.. 我已经看到了另一个问题(搜索遍)。公认的答案是“处理”它。我已经这样做了。我的问题是尽可能减少发生率。 我明白了你的观点。抱歉,我没办法了。 【参考方案1】:客户端出现超时问题,导致服务器端出现此异常。我在我的服务上使用的上传方法上看到了这种情况,因为上传文件需要一些时间,移动设备在网络之间移动的机会非常高,这可能会导致这个问题。
我会研究以下解决方案:
-
尝试确定是否是某个移动设备制造商导致您的日志因这些异常而泛滥。我经历过制造商网络处理行为与其他品牌不同的情况。如果您确实发现是某个特定品牌导致了这种情况,您可能会延长该特定设备上的默认超时时间,或者进一步调查并尝试在该设备上重现。
我还会检查导致这些异常的客户端是否由于特定调用方法的延迟问题而超时。可能某些客户在调用某个方法时遇到了某个性能问题。如果这是一个性能问题,您可能会在服务器端解决它,而调查客户端是没有用的。
如果您有任何进一步的详细信息,请更新。
【讨论】:
以上是关于连接到 .NET REST 端点的 Android 中的 Peer 错误导致间歇性连接重置的主要内容,如果未能解决你的问题,请参考以下文章
在从 net.tcp 协议连接到 WCF 的端点处侦听的问题
在 asp.net 中,客户端连接到生产服务器时 Web 服务端点不正确