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 :

Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus


Sujet :

Windows Communication Foundation .NET

  1. #1
    Membre habitué Avatar de jkakim
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 148
    Points
    148
    Par défaut Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus
    Salut !

    Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus
    est le message d'erreur que me renvoie le serveur.

    J'ai développé mon service en WCF. Pour le tester, j'ai créé un client Windows qui le consomme, tout marchait bien jusque là.

    Après, je place les paramètres sur un client ASP.NET, là j'ai le message ci-haut du serveur. J'ai tout revu, ligne de code après ligne, sans succès !

    Alors j'ai besoin de vous, ai-je fait un truc qu'il ne fallait pas ou ai-je oublié de faire quelque chose, c'est ce que j'attends de vous.

    Merci !

  2. #2
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Cela signifie tout simplement qu'un autre processus a accès au fichier. Cela ne provient pas forcément de ton application.

    Il faudrait commencer par cibler quel fichier déclenche ce message et à quel moment exactement. Et ensuite, il faut vérifier toutes les applications qui y accèdent et veiller à ce qu'elles le referme dès qu'elles en ont fini l'écriture ou la modification.

  3. #3
    Membre habitué Avatar de jkakim
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 148
    Points
    148
    Par défaut
    Salut laedit,
    Oui, il est clair qu'un autre processus a accès au fichier. Tel que le message d'erreur le dit.
    Mais quel processus ? Et puis, dans l'applic je n'ai accès à aucun fichier particulier. Si ce n'est la base de donnée et les fichiers de config, que je crois pas que ça soit cela qui génère l'erreur.

    Franchement, je viens de passer près d'une semaine alors je dis que ça m'énerve déjà ! *
    Quelqu'un peut vraiment m'aider ?

  4. #4
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Tu n'as aucun moyen de savoir de quel fichier le message d'erreur parle ?

    Parce que dans ce cas, ça risque d'être dur de t'aider

    Mais si tu dis qu'il n'y a que les fichiers de configuration, ça ne peut être qu'eux, ce qui pose encore problème : il est censé être le seul à y avoir accès...

  5. #5
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 253
    Points
    28 253
    Par défaut
    c'est pas bien compliqué, tu fais du debug pas à pas, et tu verras vite la ligne où ca plante. à cette ligne, tu trouveras une operation de lecture ou ecriture sur un fichier, et donc à toi de voir quel est ce fichier et pourquoi il est utilisé plusieurs fois.

    c'est sûrement un stream que tu ne fermes pas.

  6. #6
    Membre habitué Avatar de jkakim
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 148
    Points
    148
    Par défaut
    Je ne crois pas que cet erreur provient du fichier de config. car, voyons ça de plus près !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private DuplexChannelFactory<ContractServicesHIDS.IDaoServicesHIDS>channelFactory = null;
    private IDaoServicesHIDS monService = null;
    
    //plus loin :
    
    channelFactory = new DuplexChannelFactory<IDaoServicesHIDS>(this,"maConfiguration");
    IDaoServicesHIDS monService = channelFactory.CreateChannel();
    monService.OpenConnection(connectionStr, "sqlserver");
    Le code en italique est mon demon, c'est lui qui génère l'erreur, vous voyez qu'à ce niveau la lecture dans le config file s'est déjà produite, on ne peut dire que ce ça !

    c'est lors de l'appel de la methode CreateChannel() que tout plante. En renvoyant l'erreur :
    Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus .
    Alors de quel fichier sagit-il ? Et comment vaincre ce monstre ?

    Merci !

  7. #7
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    A mon avis, le fichier de configuration est lu lors de la méthode du CreateChannel, au moins pour avoir les informations qui lui manque, comme les endpoint.

    Donc ça provient bien de ton fichier de config. Quand à savoir pourquoi...

  8. #8
    Membre habitué Avatar de jkakim
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 148
    Points
    148
    Par défaut
    Oui laedit...
    C'est possible que ça provienne de là ! C'est vrai que le fichier est lu lors de l'appel de la méthode CreateChannel().

    Mais je crois que, puisque pour ouvrir ce flux de lecture, nous le faisons pas nous même, l'opération inverse (de fermeture) doit appartenir au framework et non au développeur, logique non ?

    Ou comment me vois-tu contrôler ces opérations de lecture/écriture ?

  9. #9
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 253
    Points
    28 253
    Par défaut
    oui, pour le cas de CreateChannel, l'ouverture /écriture est censée être gérée par la méthode, et soit c'est un bug du Fx soit ca vient d'ailleurs.

    ici, justement, le probleme ne viendrait-il pas d'un autre endroit dans l'appli qui lit ce fichier? fais un test, ouvre un StreamReader juste avant CreateChannel, si ca plante, ca vient d'autre part

  10. #10
    Membre habitué Avatar de jkakim
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 148
    Points
    148
    Par défaut
    Salut !
    Dire qu'il n'y a pas de solution je ne vous croirai pas ! Le blème persiste et moi je crame car j'ai envie de quitter cette étape...

    Quelqu'un vois autres choses ?

  11. #11
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Personne n'a dit qu'il n'y avait pas de solution :

    Citation Envoyé par Louis-Guillaume Morand Voir le message
    oui, pour le cas de CreateChannel, l'ouverture /écriture est censée être gérée par la méthode, et soit c'est un bug du Fx soit ca vient d'ailleurs.

    ici, justement, le probleme ne viendrait-il pas d'un autre endroit dans l'appli qui lit ce fichier? fais un test, ouvre un StreamReader juste avant CreateChannel, si ca plante, ca vient d'autre part
    As tu testé ce que te dit Louis-Guillaume ?

  12. #12
    Membre habitué Avatar de jkakim
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 148
    Points
    148
    Par défaut
    Salut laedit,
    J'ai testé le StreamReader, mais ça n'a pas l'air de changer quelque chose.
    Mais plutôt en creusant un peu j'ai maintenant un autre message d'erreur, du style :
    HTTP could not register URL http://+:80/Temporary_Listen_Address...-234022878b07/ because TCP port 80 is being used by another application.
    Je suis perdu!
    Merci de m'aider.

  13. #13
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 253
    Points
    28 253
    Par défaut
    J'ai testé le StreamReader, mais ça n'a pas l'air de changer quelque chose.
    ca doit pas "changer", ca doit te dire si le problème existe AVANT la méthode CreateChannel. si ca bug avant c'est que ca vient de ton code

    quant à ton second problème, y a milles réponses sur google
    http://social.msdn.microsoft.com/For...5-ab6bd50ca363

  14. #14
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Prends-tu la peine de lire les réponses avant de poster ?

    Le message de Louis-Guillaume devrait t'aider si tu essayais ce qu'il te propose.

    Citation Envoyé par Louis-Guillaume Morand Voir le message
    ca doit pas "changer", ca doit te dire si le problème existe AVANT la méthode CreateChannel. si ca bug avant c'est que ca vient de ton code

    quant à ton second problème, y a milles réponses sur google
    http://social.msdn.microsoft.com/For...5-ab6bd50ca363

  15. #15
    Membre habitué Avatar de jkakim
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 148
    Points
    148
    Par défaut
    Heu..
    Et si vous présentiez tous ça par un bout de code ? Je crois que ça me pourrais m'aider à voire plus clair, peut être que c'est moi qui ne pige pas !

    CODE CODE CODE :code:

  16. #16
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SteamReader reader = new StreamReader("fichierConfiguration");
    channelFactory = new DuplexChannelFactory<IDaoServicesHIDS>(this,"maConfiguration");
    IDaoServicesHIDS monService = channelFactory.CreateChannel();
    monService.OpenConnection(connectionStr, "sqlserver");
    Si ça plante lors de l'instanciation du StreamReader, c'est que le fichier de configuration est ouvert avant dans ton code et qu'il n'est pas refermé.

    Bien sûr, le "fichierConfiguration" est à remplacer par le chemin vers le fichier de configuration de ton projet.

    Quand au deuxième problème, les bouts de codes sont dans le lien fourni par Louis-Guillaume.

  17. #17
    Membre confirmé Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Points : 569
    Points
    569
    Par défaut
    en résumé pour ton 2ème problème change le n° de port de l'adresse que tu appel, ne fais pas 80, car il doit être utilisé par IIS (tt est expliqué dans le lien que t'as envoyé Louis-Guillaume Morand).

  18. #18
    Membre habitué Avatar de jkakim
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 148
    Points
    148
    Par défaut
    Bien, merci pour le bout de code !
    mais, j'ai le essayé... Le CreateChannel() crame toujours... C'est une preuve que le blème ne venait pas du fichier de config du genre : "un canal a été ouvert et pas fermé !".

    Alors que devient mon code

  19. #19
    Membre habitué Avatar de jkakim
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 148
    Points
    148
    Par défaut
    We ! Le deuxieme problème est resolu.
    Voilà, j'utilise deux serveur Apache et IIS pour une raison optimisation de vitesse d'accès (voir une discution ici :http://www.developpez.net/forums/d80...t-service-wcf/).
    C'est ce qui créait le rat ! Plus maintenant, merci Louis-Guillaume pour le lien, plutôt efficace.

    Mais l'affaire processus persiste, et m'arrache les poumons déjà

  20. #20
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 253
    Points
    28 253
    Par défaut
    Mais l'affaire processus persiste, et m'arrache les poumons déjà
    tu saoules un peu là à répondre à côté Si tu veux de l'aide, essaie de nous aider nous

    le problème persiste car aucun de nous ne t'a proposé de solution donc il va pas se réparer tout seul. La question que l'on veut, c'est SAVOIR si, comme je te le propose et avec le code laedit, ca plante AVANT ton CreateChannel?


    donc OUI ou NON, ca plante en tentant d'accéder à ton fichier de config. Le problème est logique et il est nécessaire de l'isoler et si ca plante avec le code donné, c'est que le problème ne vient PAS de ton CreateChannel donc ca ne sert à rien de chercher dans ce sens

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/09/2014, 09h51
  2. Réponses: 4
    Dernier message: 21/01/2014, 07h15
  3. Réponses: 6
    Dernier message: 25/05/2012, 20h56
  4. Réponses: 7
    Dernier message: 22/08/2008, 16h20
  5. Réponses: 7
    Dernier message: 15/06/2007, 18h50

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