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

Services Web Discussion :

Utilisation web service avec des images


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut Utilisation web service avec des images
    Bonjour,

    Alors voilà, j'ai un web service OData qui fonctionne sur la base des web services de type REST et une petite appli web en asp .net qui utilise ce web service.

    Via mon web service je peux lire et ajouter des images.

    Après l'avoir utilisé plusieurs fois avec des petits tests, j'ai voulu essayer d'enregistrer une image 3d d'environ 6Mo pour tester les performance.

    L'enregistrement c'est bien passé, et quand j'appel la page pour afficher les images, cela met un peu plus de temps mais tous ce passe bien aussi.

    Seulement, je ne peux plus faire aucune action a partir du moment que cette image est enregistré, dés que j'essaie a nouveau d'ajouter un element avec mon web service (meme une simple chaine de caractere) l'application plante et une page bleu foncé s'affiche avec le message suivant :
    Une erreur c'est produite lors de l'affichage de cette page Web. Pour continuer, actualiser cette page ou ouvrez en une autre.
    J'ai essayer de mettre des points d’arrêts en mode debug sur le clic de mon bouton mais rien y fait, l'application de rentre même pas dedans.
    Et quand je debug le chargement de ma page pour voir s'il y a une erreur, tous ce passe bien aussi.

    J'ai ensuite supprimer mon image 3d depuis ma base de données, je recharge ma page web pour ajouter des elements, j'essaye à nouveau d'ajouter une chaine de caractere et là tous ce passe bien !!

    J'ai du mal à voir ce qui peut provoquer ce comportement. Si vous avez des idées, elles sont les bien venues.

    Merci =)

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Vraiment d’idée ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    J'ai un peu avancé sur le problème en utilisant d'autre navigateur.

    Je me suis rendu compte que l'erreur http 404.13 poser problème.
    404.13 : Longueur de contenu trop grande. La demande contient une en-tête Content-Length. La valeur de l'en-tête Content-Length est supérieure à la limite autorisée pour le serveur
    Après quelque recherche pour augmenter la taille, j'ai ajouter ceci dans mon web.config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <httpRuntime executionTimeout="3600" maxRequestLength="102400" targetFramework="4.5" />
    Et ceci dans applicationHost.config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <requestFiltering>
           <requestLimits maxAllowedContentLength="60000000"/>
    </requestFiltering>
    Très bien, je lance l'ajout d'une image, tous ce passe enfin bien, je veux faire une autre tentative et là !!!!!!!!! patatra !!!!!

    Voici la nouvelle erreur :
    Une exception de type 'System.OutOfMemoryException' a été levée

    Si vous avez une idée, je suis prenante. Merci

  4. #4
    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 : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Si la taille de l'image est grande, il faut pas mal de mémoire pour la traiter... En moyenne, si tu envoies une image de 100 Mo, il va falloir environ le triple de mémoire disponible pour traiter le message. Si tu n'as qu'un seul utilisateur qui transfère une image, ça peut passer. En revanche si tu en as 10, ça risque de coincer...

    Donc si tes images sont vraiment grosses, il vaut mieux éviter de transiter par un web service. Il existe des protocoles plus adaptés, comme le FTP.

    Une idée de scénario :
    - Tu uploades ton image
    - Une fois l'upload terminé, ton web service renvoie le nom du fichier.

    Enfin, si tu es vraiment obligée d'utiliser un Web Service, tu peux splitter ton image en plusieurs petits morceaux, puis les assembler une fois l'upload de tous les morceaux terminés pour retrouver ton image initiale.

    [EDIT]: il y a peut-être une bonne solution à envisager ici : http://www.codeproject.com/Articles/...iles-Over-HTTP
    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.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    tu peux splitter ton image en plusieurs petits morceaux, puis les assembler une fois l'upload de tous les morceaux terminés pour retrouver ton image initiale.
    Effectivement, je suis obligé de passé par un web service pour faire transiter des images assez lourdes.
    Ton idée, me parais assez intéréssante. Aurais tu un exemple ?

    Sinon, j'utilise actuellement un service WCF Data Services (OData) de Entity Framework. Est ce que un autre web service de type SOAP, par exemple, serait plus adapter pour les images ou alors je retrouver le même problème ?

    Merci

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Désolé, je n'avais pas vue le lien vers code project. C'est un service de type soap, je vais essayer de voir ce que sa donne. Merci

Discussions similaires

  1. Appel d'un web service avec des paramètres
    Par pussyycat dans le forum Services Web
    Réponses: 3
    Dernier message: 04/07/2012, 15h38
  2. Réponses: 2
    Dernier message: 23/05/2008, 15h06
  3. [GD] Utilisation de imagecreatefromjpeg() avec des images de plus de 2 000 pixels
    Par jojo33bx dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 11/09/2007, 19h40

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