gpt4 book ai didi

c# - 长时间运行的 ASP.NET MVC 核心 Controller HTTPPost 方法超时

转载 作者:行者123 更新时间:2023-12-03 08:50:40 24 4
gpt4 key购买 nike

我在 ASP.NET Core MVC 中使用了 ajax 调用查看页面

我的 View .cshtml

          $.ajax({
processData: false,
contentType: false,
data: new FormData(this),
type: $(this).attr('method'),
url: $(this).attr('action'),
cache: false,
success: function (data) {
$('#mydiv).html(data);
$('#bootstrapModal).modal('show');

Controller Post 方法"
    [HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> MyLongRunningMethod(MyViewModel viewModel)
{
await MyProcess.Longprocess1();
await MyProcess.Longprocess2();
await MyProcess.Longprocess3();
await MyProcess.Longprocess4();
return PartialView("_MyPartialPage");
}

这有效,但仅对长时间运行的过程有问题。在 Debug模式下,当该过程需要超过大约 2 分钟时,我收到以下错误

enter image description here

我知道这与过期超时有关

在以前版本的 ASP.NET MVC 中,您显然可以增加 asp.net Controller 操作中的超时时间。
HttpContext.Current.Server.ScriptTimeout = 90000;

但是这在 ASP.NET Core 中不存在

我想增加特定 asp.net Controller 的调试和部署超时。

对于生产,我可以在 web.config 中全局设置它通过将 requestTimeout 添加到现有的 httpPlatform 标记。
例如10分钟
<httpPlatform requestTimeout="00:10:00" ....

有人问了类似的问题,但 answer使用 CancellationToken 给予但是阅读它,它似乎无法帮助我解决超时问题。
  • 我如何在 Visual Studio 2015 Debug模式下设置超时,就像我在部署时一样?
  • 是否有像 ASP.NET 4 中那样的每个 Controller 超时设置? ?
  • 最佳答案

    但是在 .Net Core 2.0 中没有 web.config项目中的文件。它自动生成。

    我通过添加 .UseKestrel(...) 解决了这个问题到 BuildWebHost函数在 Program.cs文件如下:

    public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
    .UseStartup<Startup>()
    .UseKestrel(o => { o.Limits.KeepAliveTimeout = TimeSpan.FromMinutes(10); })
    .Build();
    }

    关于c# - 长时间运行的 ASP.NET MVC 核心 Controller HTTPPost 方法超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37474309/

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