Webservice:AsyncCall 完成:但 WaitOne() 仍在等待
- 我通过命令行 Exe 调用 WebService 方法。
- 此方法调用是异步调用,我在调用后使用 WaitOne。
- 我正在完成的方法中执行 ManualRest.Set() 。
上述设置在 99% 的情况下都可以正常工作,异步方法会在 10-20 分钟内返回,
出现问题 当异步调用花费更多时间(例如 2-3 小时)时,WaitOne() 之后的代码不会被执行。
我在 waitone() 之前和之后以及 Completed 事件中写入日志,但在 3 小时的异步调用后,控件似乎没有返回。
上面的任何帮助/指示...
谢谢。
- I am calling a WebService method via a Command Line Exe.
- This method call is Async Call and I am using WaitOne after the Call.
- I am doing ManualRest.Set() in completed method.
The above setup works fine 99% of the cases where the async method returns withing 10-20 mintues,
Problem occurs
when the Async Call takes more time like 2-3 hours then the code after WaitOne() is not being executed.
I am writing logs before and after waitone() and in Completed event also but the control does not seems back after a 3 hours of async call.
Any help / pointer on above ...
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您确定正在调用 Set 吗?您使用的是 System.Diagnostics.Process 吗?请发布有关如何在问题中使用该流程的代码。
使用进程时,产生死锁的风险极高,尤其是当您使用 MSDN 上的代码示例来演示如何同步读取 StandardIn 和 StandardOut 时。
尝试使用异步读取方法来避免死锁。
Process.BeginOutputReadLine
Process.BeginErrorReadLine
Are you sure that Set is being called? Are you using
System.Diagnostics.Process
? Please post the code for how you use the process in your question.When using a process there is an extremely high risk of creating a deadlock, especially if you use the code examples on MSDN that show you how to read from StandardIn and StandardOut synchronously.
Try using the asynchronous read methods instead to avoid deadlock.
Process.BeginOutputReadLine
Process.BeginErrorReadLine