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 :

Appel Asynchrone et WCF


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    522
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 522
    Par défaut Appel Asynchrone et WCF
    Bonjour,

    J'ai un site Web qui va consommer un service WCF en mode asynchrone.

    Au moment de rajouter un service référence, 'jai coché la case Asychrone pour générer la classe proxy.

    ensuite, sur la page

    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
     
     protected void Button1_Click(object sender, EventArgs e)
            {
                PageAsyncTask pat = new PageAsyncTask(BeginFileRetrieveAsync, EndFileRetrieveAsync, null, null);
                Page.RegisterAsyncTask(pat);
            }
     
            IAsyncResult BeginFileRetrieveAsync(object sender, EventArgs e, AsyncCallback acb, object extraData)
            {
     
                ServiceProxy<PoleWebService.TestFileAsync.IFileTransfert> service = new ServiceProxy<PoleWebService.TestFileAsync.IFileTransfert>("WSHttpBinding_IFileTransfert1");
               Request request = new Request();
                IAsyncResult result = service.Proxy.BeginDownload(request, acb, extraData);
                return result;
     
            }
     
            private void EndFileRetrieveAsync(IAsyncResult ar)
            {
                 Service pw = new Service();
                Request request = new Request();
                FileResponse result = pw.Download(request);
                Label1.Text = "non fini";  
            }
    Mon probleme est le suivant : j'aimerais que, au moment d'appuyer sur le bouton click, il lance la méthode du web service sans pour autant bloquer l'utilisateur. à savoir qu'il ne doit pas voir le chargement de la page.
    ensuite, pouvoir checker si la méthode a fini d'être exécuter.
    comment feriez vous? dosi je faire une modification coté service WCF ou je peux tout faire côté client?

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Met le bouton click et l'appel au web service dans un control updatepanel. Et pas besoin d'appel asynchrone à ce moment là.

    Tu as un tuto ici: http://dotnet.developpez.com/ajax/aj...panel-trigger/
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  3. #3
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    522
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 522
    Par défaut
    merci

  4. #4
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    522
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 522
    Par défaut
    Je remets ce post à jour.
    Je pense être obligé de faire un appel asynchrone.
    Les traitements des fichiers peuvent être très longs. Il faudrait en fait que l'utilisateur lance l'appel de la méthode du web service WCF, qu'il puisse faire ce qu'il veut ensuite (changer de page, prendre son cafe), alors que le traitement continue.

    Est ce possible? si oui comment? Dois je aussi faire un changement coté service WCF pour que ce soit possible?

    Merci

  5. #5
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Avec de l'aspx, non (surtout si il change de page). Finalement dans ce scénario, le client du webservice (le serveur web) qui pourrait éventuellement être rappellé par le serveur du webservice ne peut pas rappeller le client (qui est le navigateur de l'utilisateur).
    Tu peux si tu fais un client riche (comme du silverlight par exemple).

  6. #6
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    522
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 522
    Par défaut
    Je ne comprends pas trop l'intérêt des appels WCF asynchrone à ce moment la
    Je pensais que justement, ca permettait de lancer un appel au WS et apres faire ce que l'on voulait.
    Typiquement, je voudrais lancer un traitement en base au click d'un utilisateur et que qd il revient le lendemain ce soit fini

Discussions similaires

  1. [wcf][débutant] Problème d'appel asynchrone et synchone.
    Par volontier dans le forum Windows Communication Foundation
    Réponses: 13
    Dernier message: 11/08/2010, 10h41
  2. Problème appels asynchrones à un WCF avec SilverLight 3
    Par Throna dans le forum Silverlight
    Réponses: 9
    Dernier message: 03/06/2010, 17h03
  3. Appel asynchrone de service WCF
    Par trihanhcie dans le forum ASP.NET
    Réponses: 1
    Dernier message: 20/04/2010, 20h03
  4. Réponses: 7
    Dernier message: 16/04/2008, 16h42
  5. Appel Asynchrone WCF & Client Web
    Par gufra dans le forum Windows Communication Foundation
    Réponses: 2
    Dernier message: 31/03/2008, 16h13

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