我目前正在尝试通过我的webapp导入数据库,该webapp托管在azure上(数据存储在xlsx文件中)。
我遇到的问题是,每次大约4分钟后,azure会给我一个服务器超时错误,即使我在线下工作时导入过程就像魅力一样。
确切的错误消息如下: 500请求超时的Web服务器无法响应azure。
如果有人遇到过这条消息并且知道如何解决这个问题,我将不胜感激。
谢谢!
答案 0 :(得分:2)
在Web作业中进行任何长处理,而不是在HTTP请求中。
当用户提交请求时,获取excel文件,将其上载到Azure存储帐户,将路径存储在数据库中并在队列中发布消息。 使Web作业侦听队列并执行所需的处理。
您可以使用SignalR传回结果,Web作业可以向SignalR中心发送消息,Web应用程序可以收到此消息并显示给用户。
答案 1 :(得分:0)
我们遇到了这个问题,我们的理解是Azure基础架构为您提供了四分钟的时间来处理请求,然后防火墙或网络平衡将其切断并返回500错误。我们发现长时间运行的请求是不可能的。但是,由于定时器在请求完全传输后启动,因此需要很长时间才能传输数据的请求可能会超过4分钟。 我知道这并没有直接解决您的问题,我们的解决方案是确保所有请求处理在4分钟内完成。
以下问题Azure Http Timeout Workaround提供了一些方法,可为您提供进一步的信息以及避免此问题的方法。