首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决web服务调用耗时过长的问题?

如何解决web服务调用耗时过长的问题?
EN

Stack Overflow用户
提问于 2013-01-18 02:24:19
回答 2查看 1.6K关注 0票数 3

我正在开发一个需要从MVC WebApi服务器获取数据的Windows RT应用程序。问题是响应可能需要几秒钟到3分钟。

解决这个问题的最佳方法是什么?

现在,我对web api调用async,并设置了一个很长的超时值以避免异常。这是一种好方法吗?我不喜欢太多,因为服务器有一个开放的连接一直打开。会不会对服务器性能有很大的影响?

有没有类似于“回调”之类的东西,但用于web服务?我的意思是,服务器调用客户端来发送数据。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-18 03:01:03

是的,有一些方法可以让服务器回调客户端,例如WCF双工通信。但是,这种技术通常会使连接保持打开(在大多数情况下,这是TCP会话)。大多数web服务器不支持大量并发请求,因此每次对服务器的长时间调用都会增加并发连接的客户端的数量。这将在本不应该的地方导致大量的资源利用。如果你有很多客户端,这样的架构肯定会失败。

REST请求应该是轻量级的、小的和快速的。考虑使用数据库存储临时结果,并使用工作服务器来处理负载。这是服务器端的问题,而不是客户端的问题。

票数 3
EN

Stack Overflow用户

发布于 2013-01-21 15:34:21

最后我用WebSockets解决了这个问题(感谢oleksii)。它保持连接打开,但我避免重复轮询结果。现在,当服务器完成该过程时,将数据直接发送到客户端。WebSockets是一种通过TCP进行中继的协议,并且已经被标准化。

http://en.wikipedia.org/wiki/WebSocket

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14385640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档