FAQ n°10146, publiée le 13/01/2015
WEBDEV
Que faire si le message ERR_NO_PAGE / interfEXE.cpp est affiché lors de l'appel de la fonction "PageAfficheDialogue" dans un site WEBDEV dynamique ?
La fonction PageAfficheDialogue affiche une page de manière modale. Cette fonction permet de créer un dialogue avec l'utilisateur dans un site web. Dans certains cas d'utilisation, elle peut provoquer l'affichage du message suivant :

Le serveur d'application WebDev a rencontré un état interne anormal.
Code interne de l'erreur : ERR_NO_PAGE
.\srcSession\interfEXE.cpp (...)

Ce retour inattendu se produit si le serveur qui héberge le site, est en attente de la réponse à un dialogue ouvert par la fonction PageAfficheDialogue, mais reçoit une toute autre réponse. Par exemple avec ce code : 

Lorsque le serveur exécute la fonction PageAfficheDialogue il se met en attente de la réponse de la page PAGE_Sortir. Tant qu'il n'a pas reçu la réponse Vrai/Faux de la page, il reste en attente sans exécuter le code qui suit. Si durant cette attente l'internaute fait l'envoi d'une réponse autre que celle au dialogue, le message ERR_NO_PAGE est affiché par le moteur.

Afin de supprimer ce retour, il faut donc adapter la navigation dans le site et faire en sorte que durant l'appel PageAfficheDialogue, tous les traitements parallèles soient stoppés. Les cas les plus courants sont les suivants : 
  • le bouton à l'origine de l'appel de la fonction PageAfficheDialogue n'a pas la coche "Empêcher la répétition" cochée dans le volet "Détail" de sa description,
  • un timer dont la fonction navigateur fait appel au serveur via AjaxExécute ou AjaxExécuteAsynchrone n'a pas été stoppé le temps de l'affichage du dialogue (l'appel Ajax est alors reçu par le moteur à la place de la réponse au dialogue),
  • plusieurs pages ont été ouvertes sans être refermées dans des navigateurs différents, ou volets différents, laissant ainsi la possibilité à l'utilisateur d'exécuter d'autres codes serveurs...


Liens utiles sur ce thème :