具有webapi角色的Azure Worker意外重新启动

具有webapi角色的Azure Worker意外重新启动,azure,asp.net-web-api,azure-worker-roles,Azure,Asp.net Web Api,Azure Worker Roles,我在A7 Azure worker角色上有一个worker角色。该角色是一个ASP Webapi 当角色运行时,我可以向其发送一个命令(通过web界面),该命令启动数据聚合过程,该过程最多需要8小时 此时将创建一个大对象图 这项工作持续了几个月,没有任何问题 现在似乎在创建过程中重新启动了角色或API。 有一次我能够在azure管理门户中观察到它,它看起来是这样的: 但是protocoll中没有重新启动。我已经与azure支持部门联系过 结果是实例太小,无法处理这个hughe量 我们切换到一个

我在A7 Azure worker角色上有一个worker角色。该角色是一个ASP Webapi

当角色运行时,我可以向其发送一个命令(通过web界面),该命令启动数据聚合过程,该过程最多需要8小时

此时将创建一个大对象图

这项工作持续了几个月,没有任何问题

现在似乎在创建过程中重新启动了角色或API。

有一次我能够在azure管理门户中观察到它,它看起来是这样的:


但是protocoll中没有重新启动。

我已经与azure支持部门联系过

结果是实例太小,无法处理这个hughe量


我们切换到一个D14实例,一切都像一个charme一样工作

您的数据聚合逻辑驻留在哪里?在Web API层中还是在单独的流程中?您是以工作角色自托管WebAPI,还是使用IIS?我这样问是因为IIS不适合8小时、内存密集型的工作负载。我们刚刚使用默认vs项目模板创建了一个工作角色不确定该配置是什么。默认情况下,您的Web API是在工作角色中运行还是在IIS的Web角色中运行?()如果它是一个真正的工作者角色,那么运行8小时任务是一个不错的选择,但是您需要小心地将Web API层与长期运行的逻辑分离(通常使用单独的角色+队列)。如果它是一个web角色,那么这也不是运行8小时工作负载的地方。一般来说,我认为您需要将Web API层与长期运行的逻辑正式分离。他们应该在不同的角色中。这是一个工作者角色。如果您可以发布一些代码,说明如何将Web API与工作者角色集成,以及如何执行8小时的工作负载,这可能会有所帮助。或者只是进一步解释一下你的设计。我们需要更多的细节来理解这个问题。你能补充一些细节吗?你是否真的使用了太多的内存,有没有记录在案?如果内存是个问题,它应该出现在你的仪表板上,并且非常容易发现和跟踪。你是否发现自己没有达到极限,但你的员工还是在崩溃?A7到D14是每月500美元,这是相当激烈的。。。