gpt4 book ai didi

c# - Azure "500 - The request timed out"自定义错误页面

转载 作者:行者123 更新时间:2023-12-02 23:11:51 26 4
gpt4 key购买 nike

我们已将 ASP.NET MVC 应用程序部署到 Azure 应用服务。

如果请求花费的时间超过 230 秒,Azure 将返回错误页面“500 - 请求超时。Web 服务器未能在指定时间内响应。” -https://stackoverflow.com/a/38676086

我们正在进行更改,以确保减少对 Web 请求的处理,但仍有可能会达到这些限制。有谁知道是否有办法配置显示自定义错误页面而不是下面显示的通用错误页面?

Azure 500 - The request timed out page

最佳答案

We are making changes to ensure less processing is done on the Web request, however there may still be a chance that these limits are hit. Does anyone know if there is a way to configure a custom error page to be shown instead of the generic error page shown below?

由于您无法克服 Azure 应用服务中请求超时(230 秒)的限制,因此您需要优化服务器端处理,或者需要捕获异常并自定义响应。我尝试使用 Application_Error event 捕获异常和定制HTTP Modules ,但最终失败了。

作为解决方法,您可以指定操作的超时并在 Azure 应用服务抛出超时异常之前捕获应用程序中的异常,然后您可以添加自定义错误页面。您可以利用 AsyncTimeoutAttribute并按如下方式定义您的操作:

[AsyncTimeout(duration:10000)] //The timeout value in milliseconds.
[HandleError(ExceptionType = typeof(TimeoutException),
View = "TimeoutError")]
public async Task<ActionResult> LongTask(CancellationToken cancellationToken)
{
await Task.Delay(TimeSpan.FromSeconds(20), cancellationToken);
return Content("Done");
}

注意: HandleErrorAttribute 需要在 Web.Config 中启用 customErrors。如果发生 TimeoutException,那么您将被重定向到您定义的特定 MVC View 。

关于c# - Azure "500 - The request timed out"自定义错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47905561/

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