在AJAX调用上获得504 [MVC]

时间:2016-05-02 04:38:03

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

我在我们网站的某个页面上遇到504 gateway_timeout,当它在我们的生产网站的IIS中托管时。它在我的localhost,我们的测试站点和我们的生产服务器的localhost(通过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]注释。有什么想法在访问产品网址时会发生这种情况吗?其他方法通过相同的方式调用,它们工作正常,但Tabular / Getdd

上的此实例除外

1 个答案:

答案 0 :(得分:0)

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

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

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