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 :

Afficher 2 images par enregistrement depuis la base de données SQL SERVER (Entity Framework)


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut Afficher 2 images par enregistrement depuis la base de données SQL SERVER (Entity Framework)
    Bonsoir à tous,

    Après un changement d'architecture, j'ai dû enregistrer mes images dans ma Base de Données SQL-Server. Je dois maintenant modifier les enregistrements de sorte à avoir les images dans les colonnes PhotoAgent et EmpreinteAgent de type Image. après 2 modifications, je n'arrive plus modifier quoi que ce soit. Pour les modifications j'ai une procédure AfficherDansLesChamps que j'appelle par l’événement SelectedIndexChanged de ma GridView. Elle sert à afficher les données de la ligne sélectionnée dans les champs. Lorsque je clique, j'ai chaque fois ce message d'erreur:

    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
     
     
     Longueur maximale de la demande dépassée.
    Description : Une exception non gérée s''est produite au moment de l''exécution de la requête Web actuelle. Contrôlez la trace de la pile pour plus d''informations sur l''erreur et son origine dans le code.
     
    Détails de l''exception: System.Web.HttpException: Longueur maximale de la demande dépassée.
     
    Erreur source:
     
    Une exception non gérée s''est produite lors de l''exécution de la requête Web actuelle. Les informations relatives à l''origine et l''emplacement de l''exception peuvent être identifiées en utilisant la trace de la pile d''exception ci-dessous.
     
    Trace de la pile:
     
     
    [HttpException (0x80004005): Longueur maximale de la demande dépassée.]
       System.Web.HttpRequest.GetEntireRawContent() +9695275
       System.Web.HttpRequest.GetMultipartContent() +63
       System.Web.HttpRequest.FillInFormCollection() +165
       System.Web.HttpRequest.EnsureForm() +75
       System.Web.HttpRequest.get_Form() +12
       System.Web.HttpRequest.get_HasForm() +9696671
       System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) +95
       System.Web.UI.Page.DeterminePostBackMode() +69
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +130
    J''ai placé un point d''arrêt en début de la dite procédure, mais je n''y voit rien. Voici le code de mon Handler. J''utilise le Entity Framework 4.

    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 class MonImageHandler :ContextePage, IHttpHandler
        {
     
            public void ProcessRequest(HttpContext context)
            {
                string Matricule;
     
                if (context.Request.QueryString["AgentMatricule"] != null)
                {
                    Matricule = context.Request.QueryString["AgentMatricule"];
                }
                else
                    throw new ArgumentException("Aucun matricule spécifié.");
                context.Response.ContentType = "image/jpeg";
                Stream strm = ShowAgsImage(Matricule);
     
                byte[] buffer = new byte[4096];
     
                int byteSeq = strm.Read(buffer, 0, 4096);
     
                while (byteSeq > 0)
                {
                    context.Response.OutputStream.Write(buffer, 0, byteSeq);
                    byteSeq = strm.Read(buffer, 0, 4096);
                }
     
     
            }
     
            public Stream ShowAgsImage(string Matricule)
            {
     
                object  MonImage = AgentBLL.GetAgentByMatricule(Matricule);
     
                try
                {
                    return new MemoryStream ((byte[]) MonImage);
     
                }
                catch //(Exception ex)
                {
     
                    return null;
                }
     
            }
     
            public bool  IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    Merci de m''aider.
    La recherche de la connaissance est une Lumière qui apaise le Cœur.
    Si une réponse vous a été utile , n'oubliez pas de voter en cliquant sur:.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    Peux-tu vérifier dans ta config (web.config) la taille max autorisé par page (maxRequestLength) et voir si ta page comprenant l'image n'excede pas cette valeur...?
    Si oui il te faut l'augmenter ou mieux voir si tu as vraiment besoins d'une aussi grande image pour ton application...

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Voici ma section concernée de la webConfig :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <system.web>
            <httpRuntime executionTimeout="3600" maxRequestLength="4096"/>
     
          </system.web>
    ça ne change rien.
    La recherche de la connaissance est une Lumière qui apaise le Cœur.
    Si une réponse vous a été utile , n'oubliez pas de voter en cliquant sur:.

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Bon après modification du MaxRequestLength à 20 Mo, mes données s'affichent. J'en déduis que 4096 était trop petit. Donc j'optimise MaxRequestLength à 40 Mo et tout marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <system.web>
            <httpRuntime executionTimeout="3600" maxRequestLength="40960"/>
            <!--<httpModules>
              <add type="EnrePax.Content" name="CatchFileErrorModule"/>
            </httpModules>-->
          </system.web>
    Merci.
    La recherche de la connaissance est une Lumière qui apaise le Cœur.
    Si une réponse vous a été utile , n'oubliez pas de voter en cliquant sur:.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    Citation Envoyé par Alexandre le Grand Voir le message
    Bon après modification du MaxRequestLength à 20 Mo, mes données s'affichent. J'en déduis que 4096 était trop petit. Donc j'optimise MaxRequestLength à 40 Mo et tout marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <system.web>
            <httpRuntime executionTimeout="3600" maxRequestLength="40960"/>
            <!--<httpModules>
              <add type="EnrePax.Content" name="CatchFileErrorModule"/>
            </httpModules>-->
          </system.web>
    Merci.
    Je suis content que ton problème soit résolu gràce à ca mais c'est une pure folie de laisser des images aussi lourde dans la DB et surtout de les transferer tel quel jusqu'au navigateur.
    Problème de performance assuré.

    Il serait plus judicieux d'avoir des images redimensionné (lors de l'upload) a des tailles "web"...

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Ok, j'y remédierai. Malgré tout, mes 2 controls n'affiche toujours pas les images. Certes les autres données sont affichées dans les champs. Mais les Images ne s'affichent toujours pas. Je cherche toujours.
    Merci pour le coup de main.
    La recherche de la connaissance est une Lumière qui apaise le Cœur.
    Si une réponse vous a été utile , n'oubliez pas de voter en cliquant sur:.

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/09/2014, 15h18
  2. Réponses: 3
    Dernier message: 17/03/2008, 00h46
  3. Afficher une image dans rave depuis une base oracle
    Par Bourak dans le forum Bases de données
    Réponses: 5
    Dernier message: 18/06/2007, 11h58
  4. Réponses: 9
    Dernier message: 02/01/2007, 12h03
  5. Réponses: 8
    Dernier message: 29/09/2006, 12h08

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