第一次失败后异步连接无法正常工作

时间:2015-08-18 13:19:31

标签: c# asynchronous httpwebrequest iasyncresult

我正在处理相当烦人的问题,我找不到任何解决办法。

我正在调用WebRequest Connection,在Unity C#下工作;

PORT

它向在Windows上运行的服务器发送调用;一切正常。但是,如果服务器未关闭,则连接会等待永久响应。所以解决这个问题,我添加了超时:

IAsyncResult startingTheCall =  webRequest.BeginGetRequestStream(new      AsyncCallback(GetRequestStreamCallback), parameters);

超时工作也很好;问题是,如果我曾经触发超时(通过关闭服务器),然后再次启用服务器,无论如何,BeginGetRequestStream都不会到达服务器,直到我重新启动应用程序。

我想,也许失败了,我没有正确清理连接。所以我确实在超时内设置了这个清理程序:

ThreadPool.RegisterWaitForSingleObject(startingTheCall.AsyncWaitHandle, new WaitOrTimerCallback(TimeoutCallbackOfFirstStream), parameters, 10000, true);

我中止请求,关闭流。仍然,在第一次失败后,服务器将永远不会发送响应或获取流消息,直到我重新启动应用程序。就像它完全被阻挡一样。

有没有人有这种行为?

0 个答案:

没有答案