异步调用Web服务仍会挂起应用程序

时间:2010-06-03 16:00:05

标签: asp.net web-services asynchronous

我有一个带三个输入按钮的aspx页面。

第一个按钮,使用javascript / ajax,触发对IHttpAsyncHandler的调用。 处理程序在另一台服务器上调用Web服务(生成报告并返回报告文件的路径)。在ajax回调中,XmlHttp.responseText返回正确的路径,window.open(path)调用打开报告,没问题。

其他两个按钮打开当前站点上其他aspx页面的新窗口。

问题是,在我单击第一个按钮后,单击其他两个按钮,直到显示报告后才会显示aspx页面。弹出空白窗口,但在报告完成之前不会呈现任何内容。

导致挂起时间的原因是什么?我以为使用ajax调用报告并且Async处理程序不会干扰弹出其他aspx页面。

其他尝试:
1.在主aspx中创建reportGenCompletedEventHandler并使用reportGenAsync(...)来调用服务 2.调用(在主aspx中)

    AddOnPreRenderCompleteAsync(New BeginEventHandler(...),New EndEventHandler(...)  

3。调用(在主aspx中)

    Page.RegisterAsyncTask(New PageAsyncTask(...))
    Page.ExecuteRegisteredAsyncTasks()  

4。与上面相同,创建一个单独的AsyncHandler,但也创建一个单独的线程。

显然,我在这里遗漏了一些东西。是否可以在其他地方调用Web服务并仍然可以完全控制您的应用程序?

由于

1 个答案:

答案 0 :(得分:0)

您尝试在同一个网络主机上点击的网页是什么?如果是这样,我猜你已经达到了“同一主机的最大2个并发连接”限制。

链接here on asp.net描述了IE8如何让您超越它。