IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Une erreur au doux nom de PageRequestManagerServerErrorException


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 59
    Par défaut Une erreur au doux nom de PageRequestManagerServerErrorException
    Bonjour,

    Je galère actuellement sur une application de gestion de différents types d'utilisateurs, asp.net / C# - AJAX.

    Contexte : en fait, je reprends une application déjà commencée par quelqu'un d'autre (et assez avancée) mais qui n'a laissé aucun commentaire dans son code, et qui par la même occasion, a laissé l'application bugguée.

    Problème : en fait, en haut de page, il y a une liste déroulante sur laquelle on choisit le type d'utilisateur qui nous intéresse. Sur changement de la valeur, il charge le formulaire en dessous (en ajax donc). Pour chaque type d'utilisateur, un sous-menu apparaît, généré par une fonction qui regarde dans un fichier xml quel menu afficher en fonction de l'utilisateur.
    Ensuite, j'ai une autre fonction va chercher, à l'aise de fichiers xml et de la base de données, le formulaire avec les informations clients.

    L'ennui, c'est que pour le premier type et le deuxième type d'utilisateur, lorsque l'on clique sur un sous-menu, on obtient l'erreur suivante :
    [Exception... "'Sys.WebForms.PageRequestManagerServerErrorException: Sys.WebForms.PageRequestManagerServerErrorException: La référence d'objet n'est pas définie à une instance d'un objet.' when calling method: [nsIDOMEventListener::handleEvent]" nsresult: "0x8057001c (NS_ERROR_XPC_JS_THREW_JS_OBJECT)" location: "JS frame :: chrome://firebug/content/spy.js :: onHTTPSpyReadyStateChange :: line 491" data: no]
    http://localhost:4400/iPro/ScriptRes...21826739009108
    Line 7069
    (Détectée comme vous l'aurez vu à l'aide de Firebug).
    Cette erreur empêche bien évidemment l'affichage du contenu du sous-menu demandé. L'ennui c'est que ça marche pour l'un des trois types d'utilisateurs, alors que la fonction utilisée pour l'affichage est exactement la même.

    J'ai essayé différentes solutions liées au ispostback ou autre, j'ai lu pas mal de topics, et ça fait 5 jours que je suis toujours au même endroit, je m'en remets donc à vous. Si au moins tout plantait, je serais fixé ^^

    Merci d'avance
    Bonne journée

  2. #2
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Au vu de ton erreur, j'ai un gros doute sur FF et Firebug... tu as essayé avec IE ?

  3. #3
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    C'est surement une erreur côté serveur mais que tu ne "vois" pas car t'es dans une page "ajaxisée".
    Pour ça, exécute ton appli en mode débug

  4. #4
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 59
    Par défaut
    Bonjour,

    J'ai essayé avec IE, il me renvoie la même erreur...
    Je rappelle tout de même qu'un des types d'utilisateur fonctionne, les sous-menus s'ouvrent sans problème, que ce soit sur internet explorer ou sur firefox.

  5. #5
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Le PageRequestManager remonte les erreurs serveur au niveau du client. Elles sont donc visibles avec Firebug.

    Mais ce n'est pas pour autant une erreur JS ou une erreur du PageRequestManager.

    A en juger par le message d'erreur, tu as un objet null quelque part et le seul moyen de le trouver et de tracer.

  6. #6
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 59
    Par défaut
    Bonjour de nouveau,

    Merci pour vos réponses. J'en ai déduit la même chose, mais le problème étant que chaque sous-menu, quand il est affiché "en premier" (c'est-à-dire juste après le choix dans le select), n'importe quel sous-menu s'affiche, quand il est en affichage "par défaut".

    Donc après, je ne vois pas ce qui peut faire qu'il n'affiche pas les sous-menus après... Ils sont correctement remplis.

  7. #7
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 59
    Par défaut
    Bonsoir,

    je manquais de temps pour répondre correctement tout à l'heure. Je vais expliciter :
    - jeunes (général, liste...),
    - entreprises (général, liste),
    - autres (détails, types, liste)

    Chaque choix redirige vers une sous partie différente, développée juste en dessous de ce select, et si l'on choisit "jeunes", on tombera obligatoirement sur le premier de la liste, soit général, et de même pour les autres.

    Tous affiche correctement l'écran par défaut. En revanche, seule la partie entreprise affiche correctement les sous-menus (général, liste et autre). Les autres renvoient l'erreur donnée plus haut.

    J'espère que quelqu'un pourra m'aider, c'est galère là.

    Bonne soirée
    Harold

  8. #8
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Encore une fois il faut que tu debogues la création de ton menu de A à Z en pas à pas puisque l'erreur que tu récupères indique qu'un objet n'est pas instancié.
    C'est le seul et unique moyen de trouver ce qui ne va pas.

  9. #9
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 59
    Par défaut
    Bonjour,

    Effectivement, il y a un soucis que je ne m'explique pas encore : en fait, au premier chargement, quand il charge la page d'accueil, il pré-charge correctement toutes les données du site, pour chaque utilisateur (ok, je sais que ce n'est pas top niveau optimisation, mais je me décharge de toute responsabilité :p).

    Le problème est que lorsque l'on choisit un menu dans la liste, il ne charge aucun sous-menu, et je ne vois pas encore de quoi ça vient. J'ai effectué un meilleur débug que la dernière fois qui m'a permis de découvrir ça. Je vous tiens au courant par rapport à ce problème, je ne vois pas encore à quel endroit cela se situe.

    Bonne journée

  10. #10
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 59
    Par défaut
    Bonjour de nouveau,

    Je souhaiterais poser une question, je ne saurais pas comment la formuler sur google pour avoir une réponse correcte...

    Est-ce qu'un objet dont la visibilité est définie à false est atteignable ou pas dans le code. Je m'explique :
    Admettons que j'ai plusieurs <div>, une boucle passe pour les mettre en visibilité false. J'appelle ensuite un élément dans un formulaire caché à l'utilisateur : est-ce que cet appel fonctionnera, ou bien aurais-je une erreur me disant que l'objet n'est pas instancié ?

    Merci d'avance

  11. #11
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Tout dépend comment tu définis la visibilté.
    En code behind avec visible?
    En js, avec visibility ou avec display?

  12. #12
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 59
    Par défaut
    Je l'ai défini en code behind avec l'attribut visible...
    A la compilation, il ne l'afficherait pas ?

  13. #13
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par Harold_le_Rouge Voir le message
    Je l'ai défini en code behind avec l'attribut visible...
    A la compilation, il ne l'afficherait pas ?
    Avec visible = false, le contrôle n'est pas rendu

  14. #14
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 59
    Par défaut
    Je suis toujours en recherche de la solution...

    Je viens de constater que la fonction que je pensais être utilisée pour l'affichage des sous-menus ne sert en fait qu'à l'initialisation des données... qui se fait correctement.
    Au niveau du visible=false, seules les parties nécessaires sont bien en visible=false...

    Donc en fait, cela plante au moment du DataBind(), mais je ne sais pas comment contrôler les données qu'il prend, je ne sais même pas où il va les chercher dans l'affaire...

    Voici la fonction qui est exécutée lorsque que l'on choisit un sous menu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private void TabGroupSelection(object sender, EventArgs e)
        {
            UpdatePanel DBDisplay = Page.FindControl("MainPanel$MainDBDisplay") as UpdatePanel;
            if (ExplorerSession == null) return;
     
            ExplorerSession.SubCategory = (sender as TabGroupSelectorLinkButton).TabGroup;
     
            DBDisplay.DataBind();
            DBDisplay.Update();
        }
    Cette fonction est mise en tant qu'événement sur le click sur un sous menu par la fonction onInit que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            int i;
            AsyncPostBackTrigger oAsyncPostBackTrigger;
            TabGroupSelectorLinkButton oTabGroupSelectorLinkButton;
            Category oCategory;
     
            oCategory = Categories.GetCategory(_categoryIndex, Context);
     
            i = 0;
            foreach (CategorySubCategory oTabGroup in oCategory.SubCategories)
            {
                oTabGroupSelectorLinkButton = new TabGroupSelectorLinkButton(i);
                oTabGroupSelectorLinkButton.Text = oTabGroup.Name;
                oTabGroupSelectorLinkButton.Style.Add("margin-right", "20px");
                oTabGroupSelectorLinkButton.Click += new EventHandler(TabGroupSelection);
                oTabGroupSelectorLinkButton.ID = string.Concat("TabGroup", i.ToString());
     
                oAsyncPostBackTrigger = new AsyncPostBackTrigger();
                oAsyncPostBackTrigger.ControlID = oTabGroupSelectorLinkButton.ID;
                oAsyncPostBackTrigger.EventName = "click";
                UpdatePanel.Triggers.Add(oAsyncPostBackTrigger);
     
                UpdatePanel.ContentTemplateContainer.Controls.Add(oTabGroupSelectorLinkButton);
                i++;
            }
        }
    Si quelqu'un voit une erreur là dedans, je suis preneur, mais c'était surtout pour votre compréhension du fonctionnement. Je continue à chercher, mais je ne vois toujours pas.

    Dans tous les cas, merci de prendre du temps pour ce problème

  15. #15
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par Harold_le_Rouge Voir le message

    Donc en fait, cela plante au moment du DataBind(), mais je ne sais pas comment contrôler les données qu'il prend, je ne sais même pas où il va les chercher dans l'affaire...
    Bah nous encore moins...
    Tant que tu nous fileras pas l'erreur côté serveur, on avancera pas

  16. #16
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 59
    Par défaut
    Mais je n'ai justement pas d'erreurs côté serveur ! Toute la procédure de validation se passe sans problème, même pas un warning !

    Je me doute bien que c'est difficile de suivre, mais bon, je ne sais pas vraiment quoi fournir dans la mesure de ce que je peux, évidemment. La seule erreur que ce truc est capable de me balancer, c'est qu'un objet ne doit pas être instancié... pas une ligne, rien. Et du côté serveur, quand je passe en pas à pas ou avoir des points d'arrêt, toutes les valeurs sont correctement attribuées. Partout. Super pratique comme mode de debug.

    EDIT : par contre, je veux bien des pistes / des idées pour trouver l'erreur côté serveur comme tu dis.

  17. #17
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    L'erreur qui t'est renvoyée "instance d'objet non définie à une instance d'objet" est typiquement une erreur serveur et son libellé est à 100% identique à celui que tous les développeurs Dotnet obtiennent parfois.

    Tout cela pour dire que tu as bien une erreur serveur quelque part. Le tout c'est de tracer la moindre ligne de code, la moindre initialisation de variable pour la trouver.

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/07/2015, 18h12
  2. Réponses: 4
    Dernier message: 13/11/2013, 12h22
  3. [AC-2007] Résoudre une erreur #Nom?
    Par Cambia dans le forum IHM
    Réponses: 4
    Dernier message: 02/06/2010, 17h18
  4. Renvoyer une erreur 204 sur un nom de domaine
    Par blueice dans le forum Apache
    Réponses: 2
    Dernier message: 12/02/2009, 16h30
  5. Réponses: 6
    Dernier message: 25/06/2007, 13h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo