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

Windows Communication Foundation .NET Discussion :

IsOneWay=true et Appel asynchrone ?


Sujet :

Windows Communication Foundation .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut IsOneWay=true et Appel asynchrone ?
    Salut,

    J'arrive toujours pas à comprendre le pourquoi de l'appel asynchrone d'une opération à sens unique (donc défini avec la propriété IsOneWay= true).

    Si je sais que la méthode de mon service à sens unique donc je sais que j'attends pas de réponse alors pour quand je demande à VS2008 de me générer des méthodes asynchrones il en génère aussi pour les opérations à sens unique de mon service ?

    Merci pour votre éclaircissement.
    Dernière modification par Invité ; 21/08/2010 à 21h53. Motif: Remplacement de IsOneWay par OneWay

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Les concepts d'asynchronisme et d'unidirectionnalité sont totalement disjoints :

    - asynchronisme : on envoie la demande, sans attendre la fin de son exécution.

    - unidirectionalite (OneWay=true) : la demande ne retourne aucun résultat (concrétement c'est une méthode "void"). Cela ne change rien au fait qu'elle peut être faite de manière synchrone (au moins deux bonnes raisons peuvent motiver ce choix : attendre sa fin est indispensable avant de faire la demande suivante ou encore vérfier que la demande s'exécute sans lever d'exception).

    A noter que si un web service classique ne peut être asynchrone que coté client uniquement, WCF permet de gérer de l'asynchronisme client ET de l'asynchronisme serveur avec le concept des DuplexContract et des interfaces "callback".

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour ta réponse.

    Citation Envoyé par Bluedeep Voir le message
    - unidirectionalite (OneWay=true) : la demande ne retourne aucun résultat (concrétement c'est une méthode "void"). Cela ne change rien au fait qu'elle peut être faite de manière synchrone (au moins deux bonnes raisons peuvent motiver ce choix : attendre sa fin est indispensable avant de faire la demande suivante ou encore vérfier que la demande s'exécute sans lever d'exception).
    Pour la première raison : Ce que j'ai compris c'est que la méthode s'exécute mais sauf qu'on n'a pas de retour et le thread appelant cette méthode en synchrone sera bloqué tant que l'opération n'est pas terminée côté serveur.

    La deuxième raison fournie est fausse vu que les FaultException ne seront transmises que s'il la communication se fait dans les deux sens et cela est d'autant plus vrai qu'il n'ya pas de retour dans l'unidirectionalité.

    C'est bien ça ?

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par h2s84 Voir le message
    Merci pour ta réponse.


    Pour la première raison : Ce que j'ai compris c'est que la méthode s'exécute mais sauf qu'on n'a pas de retour et le thread appelant cette méthode en synchrone sera bloqué tant que l'opération n'est pas terminée côté serveur.
    Tout à fait.

    La deuxième raison fournie est fausse vu que les FaultException ne seront transmises que s'il la communication se fait dans les deux sens et cela est d'autant plus vrai qu'il n'ya pas de retour dans l'unidirectionalité.
    Tu es sur qu'une méthode Oneway ne remonte pas les FaultException ? j'ai comme un doute (mais il est possible que tu ais raison, je n'ai pas testé à vrai dire).

  5. #5
    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
    Les méthodes oneway ne permettent pas de récupérer les erreurs de traitements de la requête coté serveur (vu qu'il n'y a pas de message de retour).

    C'est différent d'une méthode void (non oneway) qui elle retrourne quand même un message vide indiquant le bon déroulement du traitement coté serveur.
    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.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je crois que The_badger_man viens de confirmer ce que j'avais dis au sujet des FaultException et l'unidirectionalité d'une opération de service

    Merci à tous les deux pour vos réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Asynchrone vs [OperationContract (IsOneWay = true)]
    Par azstar dans le forum Windows Communication Foundation
    Réponses: 6
    Dernier message: 26/07/2013, 21h32
  2. appel asynchrone dans le thread principal
    Par mrrenard dans le forum C#
    Réponses: 6
    Dernier message: 05/04/2007, 09h07
  3. [C#]théorie appel asynchrone
    Par ddoc dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/05/2006, 15h43
  4. Appel Asynchrone/Synchrone
    Par Dry dans le forum CORBA
    Réponses: 3
    Dernier message: 26/04/2005, 20h43
  5. [SOAP] API pour appels asynchrones
    Par Dar Shak dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 26/04/2005, 08h57

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