我有一个C#桌面应用程序,并予消耗的web服务没有问题(用“添加服务引用”添加WSDL,所以创建一个对象,并调用它的函数)。

现在,我要使用长轮询技术,但我想不出如何从客户的角度来看,做到这一点。

如何配置超时? 我应该使用专门为这一主题? 是否有一个C#桌面应用程序的任何例子吗? (还没有发现任何)

谢谢, 坝的

有帮助吗?

解决方案

您应该能够配置Web服务对象的超时 - 细节将取决于正是它的使用哪一类,但看的为例WebClientProtocol.Timeout

现在你既可以同步调用,从一个专门的线程,或者你可以做一个的异步的调用Web服务一起启动,指定一个回调来执行(可能在一个线程池线程)当服务回复。在这种情况下,你会发现你可以在异步调用本身指定超时 - 再次,这将取决于到底是什么样的,你已经有了Web服务代理类的

这样,你并不需要“浪费”只是在等待响应线程 - 但你可能会发现,异步编程模型是难度比同步一个了解。如果你只有一个或两个这些请求在任何一个时间的,额外的情侣线程不太可能是一个问题。如果你正在等待来自500个不同的服务响应,这是一个不同的问题和异步模式肯定是要走的道路。

其他提示

有关线程问题,请参阅Jon的回答。

有关的超时问题,这里的溶液: 在VS 2008中,当我从WSDL添加一个“服务引用”,它将使用WCF默认情况下,我无法找到如何设置超时值吧。

所以,当服务引用右击,我要选择“Web引用”(高级/添加Web引用)。这样一来,就只用“正常”的Web服务和超时参数是可用的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top