msxml2.serverxmlhttp在asp.net下的假死现象

时间:2022-11-04 01:57:00
a.aspx代码如下

    dim k
    k = New MSXML2.ServerXMLHTTP
    k.setTimeouts ( 65000 , 65000 , 65000 , 65000 ) 
    k.Open("POST", "http://localhost/b.aspx", False) 
    k.setRequestHeader ( "Content-Type" , "application/x-www-form-urlencoded" ) 
    k.send ( ) '7
    Response.Write ( "ok" ) '8
    k = Nothing '9

b.aspx代码如下
    dim i,x,y
    i = New MSXML2.ServerXMLHTTP
    x = New Adodb.Stream
    y = New Adodb.Recordset
'后面的代码忽略...


现在的问题是,a页面创建MSXML2.ServerXMLHTTP之后,pose给b页面的时候,
b页面的i = New MSXML2.ServerXMLHTTP出现假死
注释掉i = New MSXML2.ServerXMLHTTP那一句,则x = New Adodb.Stream同样出现假死
注释掉x = New Adodb.Stream那一句,则y = New Adodb.Recordset正常运行

如果单独执行b页面,却正常运行,如果在a页面中以response.redirect方式转向到b.aspx页面,也正常,但是若以MSXML2.ServerXMLHTTP的方式post给b页面,则b页面的部分组件创建正常,部分组件创建出现假死,请问这是一种什么现象?



3 个解决方案

#1


哈哈。是不是setTimeouts 设置的太大了阿

蒙的阿

#2


刚才的问题有了新的发现,MSXML2.ServerXMLHTTP和Adodb.Stream都属于单元线程的组件,Adodb.Recordset属于多线程组件,可能是单元线程的组件在以MSXML2.ServerXMLHTTP提交的页面中创建会出现假死现象,不知道有没好的解决方法

#3


帮顶!!!

#1


哈哈。是不是setTimeouts 设置的太大了阿

蒙的阿

#2


刚才的问题有了新的发现,MSXML2.ServerXMLHTTP和Adodb.Stream都属于单元线程的组件,Adodb.Recordset属于多线程组件,可能是单元线程的组件在以MSXML2.ServerXMLHTTP提交的页面中创建会出现假死现象,不知道有没好的解决方法

#3


帮顶!!!