Comment augmenter la taille de la publication d'un service web ASMX?

Fond

Je suis en train d'élaborer un ASP.Net côté serveur de contrôle qui a besoin de parler à un service web ASMX. Le côté serveur de contrôle utilise un WebClient objet de parler pour le service web, car il a besoin d'être réutilisés souvent dans les différentes applications, et de le rendre plus facile pour les développeurs, ils ne sont pas tenus de créer un service de référence pour le service web.

Mise en œuvre

Lors de l'utilisation du contrôle, il est nécessite l'envoi d'un objet sérialisé pour le service web. L'objet est sérialisé à l'aide de la XmlSerializer et de la chaîne XML est ensuite compressé à l'aide de la chilkat bibliothèque de compression. L'appel de service web pour la commande se présente comme suit:

webClient.UploadStringAsync(new Uri(serviceHost + serviceMethod), "POST", sendData)

Le contenu de sendData (string) est compressedResponse={CompressedData}.

Le service web a une méthode définie comme suit pour recevoir les données et décompressez ensuite la valeur de chaîne à l'aide de la chilkat bibliothèque avant de serialising l'objet à l'aide de la XmlSerializer.

public void SaveResponse(string compressedResponse)

La communication entre la commande et le fonctionnement du service. Au début il n'y avait pas de paramètres ou de liaison défini dans le web.config pour ci-dessus. Après une première recherche, je n'ai ajouter

<httpRuntime maxRequestLength="20480"/>

à la fois le client et le serveur web.config fichiers. Cela a fait aucune différence.

Problème

Compressé ou non compressé les données posté pour le service web dans le sendData variable est grande pour une requête POST, et est endommagé. Ceci est confirmé lors de la vérification de la dernière quelques caractères de la chaîne avant et après qu'il soit posté sur le serveur dans un format compressé et non compressé, le document Xml est absent de la dernière balise racine lors de la vérification dans le débogueur. Le string ne peut pas être décompressé et, par conséquent, l'appel de service échoue à chaque fois.

Comment puis-je augmenter la taille de la publication de la WebClient demande pour s'assurer que la chaîne est reçue par le serveur?

J'ai regardé les différentes option sur Google, mais aucun ne me donnent un assez bon exemple de cas où de faire les changements, ou des exemples de ce que les changements doivent ressembler. Je suis complètement perdu, comme si le changement doit être effectuée sur le serveur ou le consommer de site web, et comme il n'y a pas de liaison définies pour cela, comment faire pour créer une liaison dans le web.config pour un ASMX HTTP appel de service.

ce qui vous amène à croire que la chaîne est trop longue? Juste le fait qu'il ne peut pas être décompressé? A quoi ça ressemble dans un violon?
J'ai mis à jour la question avec l'info. Faire une vérification de base sur le comprimé de chaîne par la copie de la dernière quelques caractères avant le post et de le valider à l'encontre de la posté chaîne. Aussi l'envoi du non compressé document Xml montre que la finale de la racine de l'étiquette est manquante, et il est coupé à mi-chemin par le biais lors de la vérification dans le débogueur.

OriginalL'auteur BinaryMisfit | 2011-01-20