msxml3.dll error '80072ee2' in ASP Page

前端 未结 3 1866
名媛妹妹
名媛妹妹 2020-12-11 03:56

We have just moved to a new dedicated server that has Windows 2008 and SQL Server 2008. I am trying to access an ASP page on the same server using Server.CreateObject

相关标签:
3条回答
  • 2020-12-11 04:23

    I had this same issue. In my case the web request I was trying to make was an internal site url (within the same app pool). With server side debugging set to enabled, the asp app pool seems to be restricted to a single worker thread. By disabling this feature, the request was then able to be processed.

    0 讨论(0)
  • 2020-12-11 04:30

    msxml3.dll is pretty old. It was distributed with Internet Explorer 6 to give you a rough idea.

    Can you have someone install a later version on the server?

    http://support.microsoft.com/kb/269238 gives you a list of versions to send to whoever it responsible for the server.

    If the problem is genuinely down to a time out you could look into switching ASP buffering off. (This based soley on a guess that if the server object started to receive a response it would hold off on the timeout front.

    Alternatively you coudl try processing the value on the client side, below is a function from some code I wrote which does this....

    function getDets(RateID) {
        var xmlHttp;
        try {
            xmlHttp=new XMLHttpRequest();    // Firefox, Opera 8.0+, Safari
        }
        catch (e) {
            try {
            // Internet Explorer
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (e) {
                try {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e) {
                    alert("Your browser does not support AJAX!");
                    return false;
                }
            }
        }
        xmlHttp.onreadystatechange=function()
        {
            if(xmlHttp.readyState==4) {
            var str;
            var newStr;
            str=xmlHttp.responseText
            newStr=str.split("|");
            window.document.all.OR2.style.display="block";
            window.document.all.OR3.style.display="block";    
            window.document.OvertimeRates.Description.value=newStr[0];
            window.document.OvertimeRates.Factor.value=newStr[1];
            }
        }
        if (RateID==0) {
            window.document.OvertimeRates.Description.value="";
            window.document.OvertimeRates.Factor.value="";
        }
        else {
            xmlHttp.open("GET","GetOvertimeRate.asp?RateID="+RateID,true);
            xmlHttp.send(null);
        }
    }
    

    Good luck!

    0 讨论(0)
  • 2020-12-11 04:34

    Microsoft has a published a KB article entitled INFO: Do Not Send ServerXMLHTTP or WinHTTP Requests to the Same Server

    If the ServerXMLHTTP or WinHTTP component must send a request to another ASP on the same server, the target ASP must be located in a different virtual directory and set to run in high isolation. Avoid using ServerXMLHTTP or WinHTTP to send a request to an ASP that is located in the same virtual directory.

    ...

    A finite number of worker threads (in the Inetinfo.exe or Dllhost.exe process) is available to execute ASP pages. If all of the ASP worker threads send HTTP requests back to the same Inetinfo.exe or Dllhost.exe process on the server from which the requests are sent, the Inetinfo.exe or Dllhost.exe process may deadlock or stop responding (hang), because the pool of worker threads to process the incoming requests will be exhausted. This is by design.

    As far as alternatives go, it depends on what you're doing with the response after you receive it. If the entire purpose of the script is to forward the request to profile_view.asp, you might be able to use Server.Transfer instead.

    0 讨论(0)
提交回复
热议问题