【问题标题】:Getting 504 on AJAX call [MVC]在 AJAX 调用 [MVC] 上获取 504
【发布时间】:2016-08-26 18:48:36
【问题描述】:

当我的网站的某个页面托管在我们的生产网站的 IIS 中时,我在该页面上遇到了 504 gateway_timeout。它在我的本地主机、我们的测试站点和我们的生产服务器的本地主机(通过 localhost/link/abc 访问)上运行良好

我不知道为什么会发生这种情况,下面是我的代码:

function GetTableData(date, period, offset, method) {
    $(".load-bar").show();
    updateTimeStampTabular(date, period, offset, "Try");
    var link;

        if (method != "aa"  && method !=     "bb" && method != "cc") 
        {
        link = "../Tabular/";
         }
        else {
        link = "../Statistics/";
        }

        $.ajax({
        url: link + method,
        type: "GET",
        timeout: 200000,
        data: {
            date: date,
            period: period,
            timezoneOffset: offset
        },
        success: function (data) {
            $(".statistics .table-responsive").html(data);
            var overallStatusText = $(".right-sidebar span.status");
        },
        error: function(xhr, textStatus, errorThrown) {
        alert(xhr.status);
        alert(textStatus);
        alert(xhr.statusText);
        if (globalVars.unloaded)
            return;
        }
        });
        }

我可以确认我的 TabularController 中存在带有“dd”的函数,并且它使用 [HttpGet] 注释。任何想法为什么在访问产品 url 时会发生这种情况?其他方法通过相同的方式调用并且它们工作正常,除了Tabular/Getdd上的这个实例

【问题讨论】:

  • 大多数情况下,504 网关超时错误意味着无论其他服务器花费的时间过长以至于“超时”都可能已关闭或无法正常工作。由于此错误通常是 Internet 上的服务器之间的网络错误,或实际服务器的问题,因此问题可能与您的计算机、设备或 Internet 连接无关。
  • 可以通过 Postman 访问链接吗?这是查看问题是您的代码还是机器/网络问题的一种简单方法。
  • @JeffSiver 是的,我可以访问链接,我正在执行 ajax 调用来更新 PartialView 的值,这就是发生 gateway_timeout 错误的地方
  • @PranavPatel 也是我们通过 IIS 在我们的服务器上托管它。我们发布网站的方式会不会有错误?
  • 首先做一件简单的事情,使用任何是否正确响应的休息客户端检查您的网址和参数

标签: c# .net ajax model-view-controller


【解决方案1】:

显然这与 AWS 设置的超时有关。 为了解决这个问题,我们调整了超时设置并增加了请求的等待时间限制。我的查询(加入 2 个非常大且繁忙的表)有时会在 3 分钟后产生结果,所以我们只是将限制增加到高于 3 分钟。

我注意到这是原因,因为如果我在测试网站上查看它并没有等待时间过长的问题,并且该问题仅发生在使用站点证书的实时网站上。

如果我可以回到这个问题,我想我会重做查询并让它更快地工作(如果可能的话)

【讨论】:

  • 我知道这是一个老问题,但我遇到了这些问题,事实上,云提供商可以覆盖一些配置。就我而言,它是在 LoadBalancer 设置中设置的,以在 60 seconds 后切断连接。它正在替换(或忽略)所有 IIS 或应用程序设置。我希望这些信息可以在未来对其他人有所帮助。
猜你喜欢
  • 2013-04-24
  • 2019-05-25
  • 2019-07-09
  • 2016-11-17
  • 2016-06-22
  • 1970-01-01
  • 2015-02-13
  • 2019-02-16
  • 1970-01-01
相关资源
最近更新 更多