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 :

Abandon de Thread : le fléau des départs en vacances !


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Abandon de Thread : le fléau des départs en vacances !
    Bonjour tout le monde.

    Bon, donc j'ai un soucis d'abandon de thread. Je pense que c'est parce que je ne suis pas trés fort en AJAX.

    Alors voilà : j'ai un UpdatePanel, dans lequel je mets un DIV pour faire un fond opaque et je le cache avec un Display=none.
    Dans ce DIV, j'en colle une autre pour faire de la présentation.
    Dans ce DIV là, je met un contrôle Login, classique, sans fioriture ni personnalisation.

    Lorsque je procède à une connexion d'utilisateur, je lui fais subir le test suivant :
    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
     
    Protected Sub log_LoggingIn(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LoginCancelEventArgs) Handles log.LoggingIn
            Outils.Logage("je rentre")
            Try
                Dim u As MembershipUser = Membership.GetUser(logCinqEuro.UserName, False)
                Outils.Logage(" apres U")
                If Not u.IsApproved Then
                    Outils.Logage("dans le IF début")
                    Response.Redirect("~/Navigation/Confirmation.aspx?prov=log")
                    Outils.Logage("dans le IF fin")
                End If
     
            Catch ex As Exception
                Outils.Logage(ex.Message)
            End Try
        End Sub
    En gros, pour simple : à l'inscription le gars n'est pas IsApproved parce qu'il doit valider une mail. Procédure classique. Donc s'il essaie de se loguer je veux le rediriger vers une page spécaile.

    Dans ma procédure vous voez des Outils.Logage("").
    C'est mon outil de débuggage pour suivre ce qu'il se passe et le contenue du fichier log.txt est le suivant :
    15/06/2010 13:58:27 : je rentre
    15/06/2010 13:58:27 : apres U
    15/06/2010 13:58:27 : dans le IF début
    15/06/2010 13:58:27 : Le thread a été abandonné.
    On constate qu'il rentre dans la procédure, qu'il créé le MemberShipUser, qu'il procéde au test et qu'il plante, puisque il passe dans le Catch.
    J'en déduis que c'est le Redirect qu'il n'aime pas, mais comment faire alors ?

    Merci pour votre aide.

  2. #2
    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
    Tu dois utiliser la surcharge de Redirect qui prend un bool en 2ème paramètre et lui passer la bonne valeur (celle qui dit de ne pas abandonner le thread)

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ton aide.
    Je connaissais pas ce truc là.

    Alors j'ai essayé en mettant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Redirect("~/Navigation/Confirmation.aspx?prov=log", False)
    ça me met le log d'aprés dans mon fichier ("dans le IF fin")

    Et en mettant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Redirect("~/Navigation/Confirmation.aspx?prov=log", True)
    ça me met que le thread est abandonné (le pauvre)

    Mais ça me redirige pas !

    C'est normal ?

  4. #4
    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 zooffy Voir le message

    Mais ça me redirige pas !

    C'est normal ?
    Ouais, tu peux pas faire de redirect dans un AsyncPostBack
    Tu dois passer par du javascript => http://forums.asp.net/p/1034029/1449511.aspx

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Bon, donc j'ai fait un essaie avec le code donné dans le forum et ça marche pas.

    A la place de mon redirect j'ai mis ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Page.ClientScript.RegisterStartupScript(Me.GetType(), "redirect", "location.href = '~/Navigation/Confirmation.aspx?prov=log'", True)
    Et il ne se passe rien. Je vois mon Progress se mettre en marche, mais aprés, il n'y a rien. Même le login reste en place, il ne se referme pas. Comme s'il ne faisait pas l'action de redirection et je n'ai pas de message d'erreur, rien du tout.

    Par contre, je n'ai pas tout compris dans le détail, vu que c'est en anglais.
    D'un autre côté, je ne comprends pas pourquoi je peux pas faire de redirect alors que lorsque l'utilisateur est bon il me redirige sur la page indiquée en DestinationPageUrl.

    Qu'est ce que j'oublie ?

Discussions similaires

  1. Thread et visibilité des variables
    Par _xme_ dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 28/02/2010, 11h26
  2. [WD14] Thread qui ajoute des lignes à une table
    Par rndhnqz dans le forum WinDev
    Réponses: 11
    Dernier message: 09/02/2010, 12h48
  3. [gtkmm] thread et protection des widget
    Par Rniamo dans le forum GTK+
    Réponses: 7
    Dernier message: 15/08/2008, 17h27

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