【发布时间】:2018-02-19 15:41:28
【问题描述】:
我有一个 ASP.NET Core 2 Web 应用程序,它托管在 Windows Server 2012 上的 IIS 10 上,没有任何负载平衡和特殊配置。对于一些耗时过长的 MVC 操作,我们会收到 502 HTTP 错误。
看到这个错误后我很震惊,因为我没有任何代理服务器等的配置。然后我记得 ASP.NET Core 是在 Kestrel 上运行的。所以我得出这个结论,这里IIS扮演代理服务器的角色,将请求转发给Kestrel。所以我认为这在某种程度上与超时配置有关,因为应用程序的其他部分运行良好。我已经搜索了关于 SO 的类似问题,但没有找到解决方案。
【问题讨论】:
-
长时间运行的任务应该在后台运行,尤其是当请求超时的时间过长时。你可以使用 Hangfire 之类的东西,或者在 ASP.NET Core 2.0 中,你可以使用
IHostedService。在任何一种情况下,您的操作都应该安排任务,然后立即返回。然后,您可以使用 SignalR 监控状态并在任务完成时更新用户。 -
@ChrisPratt 谢谢克里斯。我去看看。
标签: c# asp.net iis asp.net-core