2009-04-11 4 views
3

Je tente d'envoyer un tableau d'environ 50 éléments à une méthode de service WCF, mais je reçois toujours une erreur (404) Bad Request.C# WCF: Service WCF renvoyant une (404) demande incorrecte lors de l'envoi d'un tableau d'éléments

Je pense que cela a à voir avec la taille du message ou quelque chose comme ça, parce que si j'envoie un tableau vide cela fonctionne.

J'ai fait quelques recherches et ajouté quelques éléments dans le web.config de la WCF mais je n'arrive toujours pas à le faire fonctionner.

Quelqu'un peut-il s'il vous plaît fournir des informations supplémentaires sur la façon dont je peux peut-être augmenter la taille du message que je peux envoyer?


[UPDATE] Solution:

Solution

+0

qu'en est-il de l'envoi de 5 articles? – Konstantinos

+0

si j'envoie 5 éléments du tableau, je reçois toujours la mauvaise erreur de demande –

+0

alors ce n'est pas la taille, essayez de vous concentrer sur le contenu de votre tableau. – Konstantinos

Répondre

2

moi stupide, stupide :(

La chose est que je créais la configuration de liaison dans le web.config comme tel :

<bindings> 
    <wsHttpBinding> 
     <binding name="netTcpBindingConfig" closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="6000000"> 
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="6000000" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
     </binding> 
    </wsHttpBinding> 
</bindings> 

Mais alors je n'appliquais pas la configuration au point de terminaison! Donc, j'ai dû ajouter cela à l'extrémité tag:

bindingConfiguration="netTcpBindingConfig" 

Maintenant, cela fonctionne comme un charme.

+1

vous venez de sauvegarder mon a ** w cette réponse! THX. – alchemical

+0

heureux d'être un compagnon d'aide –

0

Votre hôte de service doit être configuré pour recevoir un grand ensemble de données, sinon, il est supprimé au niveau du service.

  • Ajouter une référence à System.Runtime.Serialization.
  • Lors de la création de la liaison définir la taille du message:

     
    
    return new NetTcpBinding(SecurityMode.None, true) 
    { 
        MaxReceivedMessageSize = 99999999, 
        ReaderQuotas = { MaxArrayLength = 99999999 } 
    };