Asp.net 异步调用web服务仍然会挂起应用程序
我有一个带有三个输入按钮的aspx页面 第一个按钮使用javascript/ajax,发出对IHTTPassynchandler的调用。 处理程序调用另一台服务器上的web服务(该服务器生成报告并返回报告文件的路径)。在ajax回调中,XmlHttp.responseText返回正确的路径,一个window.open(path)调用打开报告,没有问题 其他两个按钮打开当前站点上其他aspx页面的新窗口 问题是,在我单击第一个按钮后,单击其他两个按钮直到显示报告后才会显示aspx页面。会弹出空白窗口,但在完成报告之前不会呈现任何内容 是什么原因导致挂起时间?我认为使用ajax和异步处理程序调用报表不会干扰弹出其他aspx页面 其他尝试:Asp.net 异步调用web服务仍然会挂起应用程序,asp.net,web-services,asynchronous,Asp.net,Web Services,Asynchronous,我有一个带有三个输入按钮的aspx页面 第一个按钮使用javascript/ajax,发出对IHTTPassynchandler的调用。 处理程序调用另一台服务器上的web服务(该服务器生成报告并返回报告文件的路径)。在ajax回调中,XmlHttp.responseText返回正确的路径,一个window.open(path)调用打开报告,没有问题 其他两个按钮打开当前站点上其他aspx页面的新窗口 问题是,在我单击第一个按钮后,单击其他两个按钮直到显示报告后才会显示aspx页面。会弹出空白窗
1.在主aspx中创建一个
reportGenCompletedEventHandler
,并使用reportGenAsync(…)
2.呼叫(在主aspx中) 三,。呼叫(在主aspx中) 四,。同上,创建一个单独的AsyncHandler,但也创建一个单独的线程 很明显,我遗漏了一些东西。是否可以在其他地方调用web服务,但仍然可以完全控制您的应用程序
谢谢您要访问的网页是在同一台主机上吗?如果是这样,我猜您已经达到了“最多2个并发连接到同一主机”的限制
该链接描述了IE8如何让您超越这些限制。这些页面位于同一主机上。但是,我只需单击两个按钮,一个用于进行ajax调用,另一个用于弹出一个页面。[不管怎样,我做了注册表更改,结果没有什么不同]
AddOnPreRenderCompleteAsync(New BeginEventHandler(...),New EndEventHandler(...)
Page.RegisterAsyncTask(New PageAsyncTask(...))
Page.ExecuteRegisteredAsyncTasks()