gpt4 book ai didi

WCF Azure 长时间运行操作

转载 作者:行者123 更新时间:2023-12-04 21:01:48 24 4
gpt4 key购买 nike

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

最佳答案

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

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

为什么不重新考虑你的架构呢?为什么不简单地让您的客户端将消息放入队列中,而不是依赖于连接(可以因任何原因断开连接)?您的辅助角色从队列中获取消息,进行 2-3 小时的处理,完成后会将消息放入另一个队列中。最后,您的客户端轮询其他队列,一旦消息到达那里,它就知道该过程已完成。

关于WCF Azure 长时间运行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12407170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com