2010-06-03 6 views
0

J'ai une page aspx avec trois boutons d'entrée.L'appel du service Web de manière asynchrone bloque toujours l'application

Le premier bouton, utilisant javascript/ajax, déclenche un appel à un IHttpAsyncHandler. Le gestionnaire appelle un service Web sur un autre serveur (qui génère un rapport et renvoie le chemin d'accès au fichier de rapport). Dans le rappel ajax, XmlHttp.responseText renvoie le chemin correct et un appel window.open (path) ouvre le rapport, pas de problème.

Les deux autres boutons ouvrent de nouvelles fenêtres aux autres pages aspx sur le site actuel. Le problème est, après avoir cliqué sur le premier bouton, en cliquant sur les deux autres boutons ne me donne pas les pages aspx jusqu'à ce que le rapport est affiché. Des fenêtres vides apparaissent, mais rien n'est rendu tant que le rapport n'est pas terminé.

Quelles sont les causes de ce temps d'attente? Je pensais que l'appel du rapport en utilisant ajax et un gestionnaire Async n'interférerait pas avec l'apparition d'autres pages aspx.

Autres tentatives:
1. la création d'un dans la principale ASPX et en appelant le service à l'aide reportGenAsync(...)
2. appelant (dans la principale ASPX)

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

3. appelant (dans la principale ASPX 4.

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

4. comme ci-dessus, en créant un AsyncHandler séparé, mais en créant également un thread distinct.

De toute évidence, il me manque quelque chose ici. Est-il possible d'appeler un service Web ailleurs et d'avoir toujours le contrôle total de votre application?

Merci

Répondre

0

sont les pages que vous essayez de frapper sur le même hébergeur? Si c'est le cas, je suppose que vous avez atteint la limite "2 connexions simultanées au même hôte".

Le lien here on asp.net décrit comment IE8 vous permet d'aller au-delà.

+0

Les pages sont sur le même hôte. Cependant, je suis en train de cliquer sur deux boutons, l'un pour faire l'appel ajax, l'autre pour faire apparaître une page. [J'ai fait les changements de registre de toute façon, et cela n'a pas fait de différence] – eych

Questions connexes