Asp classic 为ServerXMLHTTP请求设置超时

Asp classic 为ServerXMLHTTP请求设置超时,asp-classic,timeout,javascript,serverxmlhttp,Asp Classic,Timeout,Javascript,Serverxmlhttp,有人知道如何在ServerXMLHTTP请求超时时设置默认操作吗?我正在使用setTimeouts()根据设置设置超时选项 理想情况下,我希望从一开始就再次初始化请求,或者在页面超时时刷新页面 我使用的是经典的asp和jscript 这是我的要求: function serverXmlHttp(url) { var serverXmlHttp; serverXmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.6.0");

有人知道如何在ServerXMLHTTP请求超时时设置默认操作吗?我正在使用setTimeouts()根据设置设置超时选项

理想情况下,我希望从一开始就再次初始化请求,或者在页面超时时刷新页面

我使用的是经典的asp和jscript

这是我的要求:

function serverXmlHttp(url) {
    var serverXmlHttp;
    serverXmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.6.0");

    // set time out options
    serverXmlHttp.setTimeouts(15000,15000,15000,15000);

    // does not work
    // serverXmlHttp.ontimeout(Response.Write("page has timed out"));

    serverXmlHttp.open("GET", url, false);
    serverXmlHttp.send();

    if (serverXmlHttp.readyState == 4) {
        return serverXmlHttp.responseText;
    }
}

重要的是要找出它为什么会超时

远程Url是否与调用页面位于同一应用程序上


如果是这样,请查看,因为您将面临线程不足。

解决了这个问题。我只需要使用try/catch语句

function serverXmlHttp(url) {

    try {
        var serverXmlHttp;
        serverXmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.6.0");

        // set time out options
        serverXmlHttp.setTimeouts(15000,15000,15000,15000);

        serverXmlHttp.open("GET", url, false);
        serverXmlHttp.send();

        if (serverXmlHttp.readyState == 4) {
            return serverXmlHttp.responseText;
        }
    catch(error) {
        // whatever I want to happen if there's an error
        Response.Write("Sorry, your request has timed out");
    }

}

不,不是。正在向另一台服务器上的数据库发出请求。我只想有一个故障保险箱,以防请求超时(有时会这样),而不是一般的超时错误。如果您使用的是纯经典ASP,则可以捕获
msxml6.dll
错误
80072EE2
(“操作超时”)。它将由
send
方法抛出。