2012-11-16 2 views
1

OK, j'ai écrit une méthode dans un service Web pour envoyer un email (pas important). Côté site, je désérialise un objet MailMessage en XML (une routine personnalisée que j'ai écrite). Cela est ensuite passé en tant que paramètre à la méthode Web dans le service Web. Tout fonctionne correctement, jusqu'à ce qu'une pièce jointe dans le message électronique devienne plus grande que 144 ko.Problème de méthode de service Web. La requête n'atteint jamais la méthode du service Web (aucune erreur)

La chaîne XML pour le message se termine par la recherche quelque chose comme ça (passé comme paramètre de chaîne non formatée):

<MailMessage> 
     <To>[email protected]</To> 
     <From>[email protected]</From> 
     <Body>blah blah</Body> 
     <Attachment ContentType="application/vnd.ms-excel" fileName="Test.xls"> 
     <byte>00</byte> 
     <byte>05</byte> 
     <byte>6F</byte> 
     …etc 

La taille des pièces jointes plus haut que je peux avec succès recevoir est 144kb, quoi que ce soit plus élevé que cela, et la requête n'atteint jamais la méthode de service Web. Je sais cela pour un fait que la première ligne de ma méthode web est de se connecter que la demande a été reçue. Les journaux IIS affichent les messages POST reçus par le service Web (d'après ce que je peux rassembler), mais il n'y a aucune preuve que cela arrive dans ma méthode Web. Il n'y a pas d'erreurs, malgré essayer d'attraper des blocs autour de tout ce que je peux penser.

Y a-t-il une sorte de taille/délai maximum par défaut que je ne connais pas? Je ne suis pas un gourou avec ce genre de choses, alors j'imagine qu'il me manque quelque chose d'insignifiant ici.

Est-ce que quelqu'un peut dire ce que je peux faire de mal s'il vous plaît? Je peux poster des exemples de code si nécessaire.

Répondre

3

L'augmentation de la valeur de maxMessageLength dans votre fichier web.config devrait permettre de transmettre des messages plus importants au serveur.

<configuration> 
    <system.web> 
    <httpRuntime maxMessageLength="409600" 
    executionTimeoutInSeconds="300"/> 
    </system.web> 
</configuration> 

Voir ce lien pour plus de détails.

Large Soap

+0

Merci, en utilisant les informations contenues dans le lien, j'ai installé et configuré WSE mon service à l'utiliser. Tout fonctionne maintenant bien. – user1830285