Mono 当调试器连接到Unity editor时,HttpWebRequest.EndGetResponse会定期挂起

Mono 当调试器连接到Unity editor时,HttpWebRequest.EndGetResponse会定期挂起,mono,unity3d,Mono,Unity3d,出于各种原因,我需要使用HttpWebRequest而不是内置的WWW类来调用Unity项目中的web服务。我发现Request.EndGetResponse在某些情况下会挂起。当附加调试器时,问题会更加严重。在没有调试器的情况下,这种情况时有发生,但在附加调试器的情况下,这种情况几乎100%都会发生。只有在我使用HTTPS调用web服务时才会发生这种情况 我插上Wireshark查看两条痕迹。奇怪的是,附加调试器时的跟踪包含握手失败,而没有调试器的跟踪则没有握手失败。另一件有趣的事情是,工作的

出于各种原因,我需要使用HttpWebRequest而不是内置的WWW类来调用Unity项目中的web服务。我发现Request.EndGetResponse在某些情况下会挂起。当附加调试器时,问题会更加严重。在没有调试器的情况下,这种情况时有发生,但在附加调试器的情况下,这种情况几乎100%都会发生。只有在我使用HTTPS调用web服务时才会发生这种情况

我插上Wireshark查看两条痕迹。奇怪的是,附加调试器时的跟踪包含握手失败,而没有调试器的跟踪则没有握手失败。另一件有趣的事情是,工作的跟踪包括两条[FIN,ACK]消息,可能来自其他失败的尝试

最终,我认为我在Mono 2.6线程池中遇到了一些已知的问题。也就是说,我不明白EndGetResponse在做什么,可能会导致它挂起——我以为这是一个同步操作。我也不明白附加调试器会如何影响问题


如果有任何单声道专家在那里,我将感谢任何洞察力

mono 2.6是一个古老的版本,请Unity3D的伙计们将他们的mono版本升级到3.x不是开玩笑的,但不幸的是,这正是我们所坚持的。