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

C# Discussion :

Problème avec CSV File qui reste ouvert


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème avec CSV File qui reste ouvert
    Bonjour,

    Dans mon application web, j'ai un bouton qui ouvre une popup pour sélectionner le fichier csv. Si le fichier csv est ouvert on arrête le traitement.

    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
    public static bool IsFileInUse(string cheminDuFichier)
            {
                try
                {
                    using (FileStream stream = File.Open(cheminDuFichier, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
                    {
                        stream.Close();
                        DecodeFile(stream);
                    }
                    return false;
                }
                catch (IOException)
                {
                    return true;
                }
            }
     
            static void DecodeFile(IDisposable stream)
            {
                stream.Dispose();
            }
    Ca marche impeccable sur mon poste en local avec le serverweb de VS 2010.
    Et ca marche impeccable si je me connecte en mstsc sur le server et que je le fais en direct => mais c'est pas la solution

    Pour me connecter à mon application j'utilise IE 8 de mon poste en local + http://monserverdistant/site

    Mais quand je copie tout mon projet sur le serveur web et que je teste, il me dit que excel est ouvert.

    Je n'ai EXCEL que sur mon poste et nulle part ailleurs
    est ce un problème de dev ou de IIS 7 ?

    Merci pour vos réponses

  2. #2
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Bonjour

    Ce code m'interpelle !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                    using (FileStream stream = File.Open(cheminDuFichier, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
                    {
                        stream.Close();
                        DecodeFile(stream);
                    }
    D'une par le using devrait t'affranchir de close qui n'est pas insispensable dans ce cas
    Ce n'est cependant pas mauvais de faire le close explicitement
    Mais certainement pas avant d'avoir traité ton stream, donc j'ecrirais ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                    using (FileStream stream = File.Open(cheminDuFichier, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
                    {
                        DecodeFile(stream);
                        stream.Close();
                    }
    Mais d'un autre coté appeller une methode DecodeFile qui se contentent de faire un dispose de ton stream ca me semble particulierement louche et dangereux
    D'autant que le using est précisément la pour t'affranchir du dispose et du close !

    Il y a donc vraiment une incohérence de design !
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci de votre réponse,

    Mais en testant un peu plus, je me suis aperçu que le serveur web n'a pas l'autorisation de faire son "File.open" de excel sur mon poste.

    comment donner l'autorisation à ce server ? en passant par un dossier partagé ? sur lequel il a les autorisations ?

    dans la config de IIS j'ai le IUSR_MACHINE dois je le modifier par MACHINE\ASPNET ?

  4. #4
    Membre habitué Avatar de Pynouz
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 274
    Points : 177
    Points
    177
    Par défaut
    Bonjour,

    J'ai eu un problème d'ouverture de fichier Excel sur mon serveur il y a quelque temps aussi.

    Je te laisse donc jeter un coup d'oeil sur le post que j'avais ouvert en espérant que tu trouve une solution qui correspond à ton problème.

Discussions similaires

  1. Problème avec un div qui n'est pas pris en compte
    Par boss_gama dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 25/07/2006, 16h32
  2. [CSV] Problème avec CSV et point virgules
    Par Lotz dans le forum Langage
    Réponses: 6
    Dernier message: 09/03/2006, 15h11
  3. [Dev-C++]Problème avec une file ...
    Par jobherzt dans le forum Dev-C++
    Réponses: 12
    Dernier message: 15/10/2005, 17h31
  4. Réponses: 3
    Dernier message: 16/09/2005, 10h01
  5. problèmes avec "include file" pour une page asp
    Par chipsense dans le forum ASP
    Réponses: 1
    Dernier message: 02/09/2005, 15h22

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