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 :

[WCF/C#4] (400) Demande incorrecte


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    CUCARACHA
    Invité(e)
    Par défaut [WCF/C#4] (400) Demande incorrecte
    Salut,

    Je travaille sur un web service WCF d'upload en environnement distribué. J'ai eu beaucoup de mal à trouver un semblant de configuration pour dépasser la limite d'une requête de 64KB.

    Voici les éléments de conf

    Serveur

    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
     
      <system.serviceModel>
        <services>
          <service name="MonSiteStorageManager.IOManager">
            <endpoint address="http://storagemanager.monsite.com/IOManager.svc"
              binding="basicHttpBinding" bindingConfiguration="StreamedHTTPBinding"
              name="LanEndPoint" contract="MonSiteStorageManager.IIOManager" />
          </service>
        </services>
        <bindings>
          <basicHttpBinding>
            <binding name="StreamedHTTPBinding" transferMode="Streamed"
                     closeTimeout="00:20:00"
                     openTimeout="00:20:00"
                     receiveTimeout="00:20:00"
                     sendTimeout="00:20:00"
                     maxBufferSize="10485760"
                     maxBufferPoolSize="10485760"
                     maxReceivedMessageSize="10485760"
                     />
          </basicHttpBinding>
        </bindings>
        <behaviors>
          <serviceBehaviors>
            <behavior>
              <!-- Pour éviter la divulgation des informations sur les métadonnées, définissez la valeur ci-dessous sur false et supprimez le point de terminaison des métadonnées ci-dessus avant le déploiement. -->
              <serviceMetadata httpGetEnabled="true"/>
              <!-- Pour recevoir les détails d'exception des erreurs à des fins de débogage, définissez la valeur ci-dessous sur true. Définissez-la sur false avant le déploiement pour éviter la divulgation des informations d'exception. -->
              <serviceDebug includeExceptionDetailInFaults="true"/>
            </behavior>
          </serviceBehaviors>
        </behaviors>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="false" />
      </system.serviceModel>
    Client

    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
     
      <system.serviceModel>
        <bindings>
          <basicHttpBinding>
            <binding name="LanEndPoint"
                     closeTimeout="00:20:00"
                     openTimeout="00:20:00"
                     receiveTimeout="00:20:00"
                     sendTimeout="00:20:00"
                     allowCookies="false"
                     bypassProxyOnLocal="false"
                     hostNameComparisonMode="StrongWildcard"
                     maxBufferSize="10485760"
                     maxBufferPoolSize="10485760"
                     maxReceivedMessageSize="10485760"
                     messageEncoding="Text"
                     textEncoding="utf-8"
                     transferMode="Streamed"
                     useDefaultWebProxy="true"
                     >
              <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                maxBytesPerRead="4096" maxNameTableCharCount="16384" />
              <security mode="None">
                <transport clientCredentialType="None" proxyCredentialType="None"
                  realm="" />
                <message clientCredentialType="UserName" algorithmSuite="Default" />
              </security>
            </binding>
          </basicHttpBinding>
        </bindings>
        <client>
          <endpoint address="http://storagemanager.MonSite.com/IOManager.svc"
            binding="basicHttpBinding" bindingConfiguration="LanEndPoint"
            contract="WCFStorageManager.IIOManager" name="LanEndPoint" />
        </client>
      </system.serviceModel>
    Je précise qu'à 2MB ça passe mais à 5 ça plante

    Ca fait deux jours que je suis dessus car même en envoyant les messages au navigateur, on ne comprend pas ce qu'il se passe car ces messages sont trop génériques.

    D'avance merci pour votre aide

    Laurent

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Bah WCF c'est pas vraiment fait pour transférer de gros volumes de données... tu ferais sans doute mieux d'utiliser du bête HTTP pour ça.

    Sinon, tu pourrais envisager d'envoyer tes données par lots plus petits...

  3. #3
    CUCARACHA
    Invité(e)
    Par défaut
    Salut,

    Merci de ne pas te coucher trop tot

    En fait j'ai besoin de WCF car ça doit être super sécurisé et ça doit être évolutif sur Azure dans l'App fabric.

    Je sais que potentiellement il ne devrait pas y avoir de limite en taille en particulier en streaming.

    En plus je passe par http, donc je ne vois pas trop à quoi tu faisais allusion.

    Un web service REST ?

    Le classique upload http ne me convient pas, c'est ce que j'utilise entre le navigateur et le serveur web mais ensuite le serveur web transfère le flux direct dans la ressource de stockage qui peut ne pas être en samba.

    Bien à toi

    Laurent

  4. #4
    CUCARACHA
    Invité(e)
    Par défaut
    Re j'ai pensé au lots plus petits mais j'ai du mal à gérer correctement les sessions et, corriges moi si je me trompe, les sessions sont interdites dans le cloud (mais mes dernières infos sur le sujet datent un peu).

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Laurent Jordi Voir le message
    En plus je passe par http, donc je ne vois pas trop à quoi tu faisais allusion.
    Je voulais dire un upload HTTP classique, sans WCF ni WebService

    Citation Envoyé par Laurent Jordi Voir le message
    Re j'ai pensé au lots plus petits mais j'ai du mal à gérer correctement les sessions et, corriges moi si je me trompe, les sessions sont interdites dans le cloud (mais mes dernières infos sur le sujet datent un peu).
    A vrai dire je n'en sais rien, j'ai jamais développé pour le cloud (en dehors des challenges Azure de Developpez ). Mais ça me surprendrait un peu que les sessions soient interdites quand même

  6. #6
    CUCARACHA
    Invité(e)
    Par défaut
    Non c'est logique que les sessions soient interdites car les applications de l'APP Fabric sont sur des pools de serveur et on n'est pas certain qu'une première requête soit traitée par le même serveur qu'une seconde et, comme (à ma connaissance) il n'existe pas d'espace mémoire inter serveur, il n'est pas possible de gérer les sessions sans persistance en base ou autre (fichier xml par exemple).

    Comme je te l'ais dit

    Navigateur ----> Site web MVC (upload dans memory stream) ----> Storage manager WCF

    Ce type de montage me permet d'avoir une très grande souplesse car je peux changer d'hébergeur quand je veux.

    Merci

    Laurent

Discussions similaires

  1. WCF Sous AS 400
    Par Hlama dans le forum Windows Communication Foundation
    Réponses: 2
    Dernier message: 19/07/2013, 09h04
  2. Demande d'aide accès webservice (wsdl) en WCF
    Par Philippe.S dans le forum Windows Communication Foundation
    Réponses: 3
    Dernier message: 15/10/2009, 14h15
  3. [VB6] [MSChart] Courbe incorrecte
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 08/10/2002, 21h53
  4. [CR 8.5][Web] demande de connexion récurrente.
    Par Edison dans le forum Connectivité
    Réponses: 4
    Dernier message: 09/07/2002, 17h48

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