9
votes

Problème avec de grandes demandes dans WCF

J'ai vu que ce problème a enregistré un million de fois, mais aucune des solutions n'a travaillé pour moi ... donc ici, je vais:

Lorsque vous appelez un service WCF, je reçois l'erreur suivante: P>

Le formateur a jeté une exception tout en essayant de désérialiser le Message: Il y avait une erreur lors de l'essai de désérialiser le paramètre http: //blanketimportService.servicecontractS/2011/06: demande . Les Le message InnerException était «Il y avait une erreur désériorialisant le objet de type blancheimport.blanktetimorTequest. Le tableau maximum Du quota de longueur (16384) a été dépassé lors de la lecture de données XML. Cette quota peut être augmenté en changeant la propriété MaxAryLength sur le Objet XMLDictionaryReaderQuoTas utilisée lors de la création du lecteur XML. Ligne 1, position 44440. '. S'il vous plaît voir Infantaxception pour plus de détails. P> BlockQuote>

J'ai modifié le ReaderQuotas Code> sur le serveur client et appliqué la balise de configuration de la liaison. p>

Voici le serveur config: p>

  <bindings>
    <basicHttpBinding>
      <binding name="BilagImportBinding" maxBufferSize="2147483647"
        maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
        <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
          maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
      </binding>
    </basicHttpBinding>
  </bindings>
  <client>
    <endpoint address="http://localhost/BlanketImport/BlanketService.svc"
      binding="basicHttpBinding" bindingConfiguration="BilagImportBinding" contract="BlanketServiceReference.IBlanketService"
      name="BasicHttpBinding_IBlanketService" />
  </client>


2 commentaires

Le nom de service est-il juste "Blanketimport", ou est-ce sous un espace de noms (tel que blanchetimport.blanketimport)? La valeur de l'attribut "nom" de l'élément doit être le nom totalement qualifié-nom du service (nom d'espace de noms + nom de type), sinon wcf won ' t le trouver.


Il est 2015 et les paramètres de configuration de la WCF continuent d'être une énigme à la plupart d'entre nous.


3 Réponses :


20
votes

trouvé la solution ... mais toujours très étrange!

Si je supprimais l'attribut Nom de mon étiquette de liaison et de l'attribut BindingConfiguration de ma balise de terminaison, tout fonctionne. Cela signifie que la configuration BasichttpLinding est la configuration par défaut pour tous les points d'extrémité BasichttpLinding


1 commentaires

Super - si vous marquez votre propre réponse comme solution, vous obtiendrez un badge. :)




0
votes

J'ai eu un problème similaire où la liaison nommée n'était pas utilisée par le point final. Mon problème était une faute de frappe dans le nom de service. Comme le dit Livewire, la configuration simplifiée WCF 4 crée automatiquement un point d'extrémité et mon point final défini ne l'écrasait pas.


0 commentaires