首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF Azure长时间运行操作

WCF Azure长时间运行操作
EN

Stack Overflow用户
提问于 2012-09-13 21:15:49
回答 2查看 552关注 0票数 3

我有一个WCF服务,需要调用,以便调用将触发2-3小时的处理。我正在使用windows C#客户端应用程序调用该服务,并已将超时设置为所有最大值。当我将其部署到Windows Azure时,由客户端触发的WCF进程似乎在某个时刻后停止。客户端不会得到超时异常。我可以使用Azure Worker角色,但该过程只能使用WCF代码完成,因为它是一个复杂的操作。换句话说,我不能只调度对数据库执行简单编辑/插入操作的Worker角色。所以我有个鸡和蛋的问题。后台进程需要WCF代码来执行后台操作,但在Azure上运行一段时间后,WCF似乎会停止。在WCF中执行长时间运行的调用的方法是什么,以及如何在Azure上执行需要使用托管的云服务WCF代码来执行长时间运行的调用?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-13 22:29:50

这是因为the load balancer。超时时间过去是60秒,但几个月前增加到了“超过60秒”(取决于并发连接)。无论如何,您需要保持连接处于活动状态,以避免超时。

我建议您尝试在WCF客户端/服务中实现这一点:WCF Azure Net.TCP Keep Alive

为什么不重新思考你的架构呢?与其依赖于连接(无论什么原因都可以断开连接),为什么不简单地让客户端在队列中删除一条消息?您的工作人员角色从队列中提取消息,执行2-3小时的处理,完成后将消息放入另一个队列中。最后,您的客户端会轮询另一个队列,一旦消息到达该队列,它就会知道该过程已经完成。

票数 2
EN

Stack Overflow用户

发布于 2012-09-13 22:05:51

您可以将长时间运行操作所需的代码放在单独的项目中。然后,您可以在您的WCF解决方案和工作者角色解决方案中包含此项目。

然后,后台进程将拥有完成操作所需的所有功能。

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

https://stackoverflow.com/questions/12407170

复制
相关文章

相似问题

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