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 :

Erreur générique GDI+


Sujet :

ASP.NET

  1. #1
    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 Erreur générique GDI+
    Bonjour,

    Lorsque je veux sauvegarder une image j'obtiens une erreur :
    System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+.
    Cependant, cette erreur n'apparait que sur l'environnement de production. Sur mon environnement de développement tout se déroule correctement.

    Je suis pour le coup un peu perdu..

    Si quelqu'un à une idée..

    Je vous remercie.

  2. #2
    Membre éclairé
    Avatar de Etanne
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 469
    Points : 855
    Points
    855
    Par défaut
    Bonjour,

    Avez-vous les droits sur le dossier où vous souhaitez écrire ?

    Etanne
    "Phylactère temporaire" = tooltips

    Votre problème a été résolu ? Alors utilisez sur et

  3. #3
    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,

    Oui j'ai fait le test en mettant les droits total à "Tout le monde".

  4. #4
    Membre habitué
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 154
    Points : 167
    Points
    167
    Par défaut
    Est-ce que l'image est utilisée par un autre process ?

    Tiens-nous au courant

  5. #5
    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
    Non,

    Elle ne l'est pas.

  6. #6
    Membre habitué
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 154
    Points : 167
    Points
    167
    Par défaut
    Et si tu essayes de l'enregistrer avec un nom différent ?

    Si ca ne marche toujours pas, il faudrait un bout de code pour nous aider

  7. #7
    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,

    Le bug survient quelque soit le nom.

    Le problème ne vient pas du code sachant que je n'ai pas le problème du coter de mon environnement de dev où, bien evidemment, le code est le même qu'en prod.

    Cependant, en faisant quelques tests, j'ai changé le répertoire où sont enregistrées les images comme ceci :

    Le chemin avec lequel les images ne s'enregistrent pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <add key="pathImagesUploader" value="\FondationUpload\ImagesUploader\" />
    Le chemin avec lequel les images s'enregistrent correctement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <add key="pathImagesUploader" value="C:\TestImageFondationUp\

  8. #8
    Membre habitué
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 154
    Points : 167
    Points
    167
    Par défaut
    Est-ce que tu as essayé de mettre un tild (~) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <add key="pathImagesUploader" value="~\FondationUpload\ImagesUploader\" />

  9. #9
    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
    Le problème reste le même.

  10. #10
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Je ne pense pas que ça ait un lien avec le répertoire utilisé. Est-ce qu'on peut voir comment tu fais la sauvegarde de l'image ? Je pense plus à un problème de Stream ou quelque chose du genre.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  11. #11
    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
    Cela m'etonne que le problème vienne du code sachant que je n'ai pas le problème dans mon environnement de dev.

    Voici le code utilisé :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    public static SaveImageReturn SaveImage(HtmlInputFile file, int maxWeight, int maxWidth, int maxHeight, string newImageName, string locationToSave, string[] AllowedContentType)
            {
    if (file != null)
                {
                    if (file.PostedFile.ContentLength <= maxWeight)
                    {
                        System.Drawing.Image image = System.Drawing.Image.FromStream(file.PostedFile.InputStream);
     
                        if (!(image.Width <= maxWidth && image.Height <= maxHeight))
                        {
                            //l'image est trop grande
                            image = resizeImage(image, new Size(maxWidth, maxHeight));
     
                        }
     
                        //l'image est ok
                        bool validContentType = false;
     
                        foreach (string contentType in AllowedContentType)
                        {
                            if (contentType == file.PostedFile.ContentType)
                            {
                                validContentType = true;
                                break;
                            }
                        }
     
                        if (validContentType)
                        {
                            try
                            {
     
                                image.Save(Path.Combine(locationToSave, newImageName));
                                return SaveImageReturn.Ok;
                            }
                            catch (Exception exc)
                            {
                                return SaveImageReturn.Error;
                            }
                        }
                        else
                        {
                            return SaveImageReturn.WrongContentType;
                        }
     
                    }
                    else
                    {
                        return SaveImageReturn.WrongWeight;
                    }
                }
                else
                {
                    return SaveImageReturn.WrongImage;
                }
            }

  12. #12
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Ok effectivement il n'y a rien de choquant dans ton code, en tout cas pas à première vue... As-tu essayé avec Server.MapPath ?

    Egalement, pas sûr que le fait de mettre des droits à "Tout le monde" soit la solution. Je pense qu'il faut donner des permissions au compte qui fait tourner l'application pool.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  13. #13
    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
    J'ai mis les droits à "Tout le monde" afin d'être sur que le problème ne venait pas des droits.

    Pour mappath, je ne vois pas comment m'en servir. Si tu as un exemple?

  14. #14
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Donner des droits à "Tout le monde", ça ne marche pas à tous les coups. Si tu es sur un domaine par exemple... Tu es censé donner explicitement les droits au compte de l'application pool.

    Un exemple de MapPath :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    var monPath = Server.MapPath("~/FondationUpload/ImagesUploader/");
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  15. #15
    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 mis les droit sur le dossier pour les utilisateur : NED-APP\Users et NED-APP\IIS_IUSRS.

    J'ai aussi utilisé Server.MapPath.

    Le problème est toujours présent.

  16. #16
    Membre confirmé
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Points : 632
    Points
    632
    Billets dans le blog
    4
    Par défaut peut-être une option du fichier qui contient le code
    Bonjour

    Certains fichier .cs doivent avoir la propriété "action de génération" à "compilé".

    Je suis peut-être hors sujet mais je commencerai par là.

    Ensuite, ton site web est-il à la racine de ton serveur en prod ?
    Exemple je rentre tous mes sites dans un sous répertoire de C:\inetpub\wwwroot\ et les chemins ne sont pas bons, car j'étais à la racine en dev.

    Pour régler le soucis, j'ai créer un autre site sous IIS sur un autre port.
    www.monsiteweb.fr:8080 par exemple.

    bon courage

    André

  17. #17
    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,

    Merci pour ta réponse.

    Je t'avoue que je ne comprend pas trop.
    Mon site se trouve dans IIS sous le répertoire "Sites". Son chemin est donc : "D:\Sites\MonSite".

  18. #18
    Membre confirmé
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Points : 632
    Points
    632
    Billets dans le blog
    4
    Par défaut
    MonSite
    il est fort probable que l’arborescence de la racine de ton site est différente en prod et en dev.

    en dev tu es racine/default.aspx
    en prod tu es racine/MonSite/default.aspx

    racine == localhost/

    Pour avoir le même rendu en prod, crée un nouveau site dans IIS, avec un port différent de 80, 8080 par exemple et teste. localhost:8080/default.aspx

    cordialement

    andre

Discussions similaires

  1. Une erreur générique s'est produite dans GDI+
    Par ICEMAN_60 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 25/02/2011, 11h04
  2. Réponses: 0
    Dernier message: 17/06/2010, 16h13
  3. Erreur générique GDI+
    Par Jean-Marc68 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 01/05/2009, 16h24
  4. Stockage des erreurs génériques DotNetNuke
    Par Caillou63 dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 28/11/2008, 16h21
  5. Page d'erreur générique
    Par sebarbraz dans le forum Struts 1
    Réponses: 2
    Dernier message: 25/04/2007, 10h05

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