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 :

TimeOutException au travers d'une application n-tiers


Sujet :

Windows Communication Foundation .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Par défaut TimeOutException au travers d'une application n-tiers
    Bonnjour à tous,

    Je développe actuellement une application dans une architecture n-tiers : UI(interface utilisateur), BLL (couche métier) et DAL (couche d'accès aux données).
    Chaque couche communique avec les autres grâce à des services WCF suivant le schéma suivant:

    UI <==> WCF service 1<==> BLL <==> WCF service 2 <==> DAL.

    La seule communication entre les couches UI et BLL fonctionne parfaitement.

    Mais quand je parcours tout le chemin dans l'application depuis la couche UI jusque la couche DAL (au travers du service WCF 1, la couche BLL et le service WCF 2) pour faire remonter un dataTable, j'ai une erreur de type TimeOutException.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    This request operation sent to net.tcp://127.0.0.1:8000/MyServices/Service1 did not receive a reply within the configured timeout (00:01:00).  
    The time allotted to this operation may have been a portion of a longer timeout.  
    This may be because the service is still processing the operation or because the service was unable to send a reply message.  
    Please consider increasing the operation timeout (by casting the channel/proxy to IContextChannel and setting the OperationTimeout property) 
    and ensure that the service is able to connect to the client.
    J'ai essayé juste pour tester, de communiquer directement entre la couche UI et la couche DAL grâce au service WCF 2, et ça marche, j'ai bien mon dataTable de remonté!
    Cette erreur ne se produit que quand j'utilise les 2 services WCF pour faire remonter une info...

    Pour info, le binding de mes services WCF est de type NetTcpBinding.

    J'espère avoir été assez clair. Si vous pouviez à m'aider à régler ce problème très bloquant ce serait super! Merci d'avance!

  2. #2
    Membre confirmé Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Par défaut
    Bon j'ai un peu avancer dans le diagnostic de ce problème, et je me suis rendu compte que cette erreur ne se produit que lorsque j'utilise une winform pour héberger mes services, car quand j'utilise une applicatiion console comme hôte, tout marche bien...

    Seul problème c'est que j'ai bien sûr besoin d'une winform comme hôte de mes services et non d'une console...

    Une idée d'où ça peut venir?

  3. #3
    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
    Comme ça non, mais ça peut être un vrai timeout ou une fausse barbe (timeout qui masque une erreur plus profonde).

    Tu peux déjà :

    - augmenter le timeout (c'est un paramètre optionnel à l'open du channel).
    - spécifier la propriété IncludeExceptionDetailInFaults

    Gére tu l'event Faulted coté client et coté serveur ?

  4. #4
    Membre confirmé Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Par défaut
    Salut BlueDeep, je ne pense pas que ce soit une erreur de timeOut, car comme dit plus haut "J'ai essayé juste pour tester, de communiquer directement entre la couche UI et la couche DAL grâce au service WCF 2, et ça marche, j'ai bien mon dataTable de remonté!".
    Et ce en à peine 1 seconde. Donc que ça passe de 1 sec à plus d'une minute à cause d'une couche en plus à traverser, c'est moyen. En plus en utilisant ma console comme hôte, ça marche correctement en traversant toutes les couches, et ce toujours en 1 seconde.

    Et sinon, oui je gère les faultsExceptions, en la levant sur le serveur quand il y a un problème et je la catch dans le client.

  5. #5
    Membre chevronné
    Inscrit en
    Décembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Décembre 2008
    Messages : 256
    Par défaut
    Citation Envoyé par obitskater Voir le message
    Salut BlueDeep, je ne pense pas que ce soit une erreur de timeOut, car comme dit plus haut "J'ai essayé juste pour tester, de communiquer directement entre la couche UI et la couche DAL grâce au service WCF 2, et ça marche, j'ai bien mon dataTable de remonté!".
    Et ce en à peine 1 seconde.
    Une seconde c'est une éternité pour un ordinateur

  6. #6
    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
    Et quand tu appel ta méthode, si tu mets un break, dans ta BLL, il transit bien à l'aller dans "WCF service 1" ?

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

Discussions similaires

  1. Réponses: 39
    Dernier message: 30/06/2011, 09h07
  2. Probleme d'analyse d'une application 3 tiers en VB.NET
    Par wallash dans le forum Windows Forms
    Réponses: 0
    Dernier message: 26/11/2008, 16h13
  3. RMI et lazyloading dans une application 3 tiers
    Par BiLLKiLL dans le forum Hibernate
    Réponses: 3
    Dernier message: 23/01/2008, 16h40
  4. [Sécurité] sécurité d'accès à une application multi-tiers Java EE
    Par zerzy1982 dans le forum Java EE
    Réponses: 43
    Dernier message: 12/10/2007, 21h20

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