Comment puis-je augmenter maxReceivedMessageSize lorsque vous appelez un WCF de VB6?

StackOverflow https://stackoverflow.com/questions/7820171

  •  26-10-2019
  •  | 
  •  

Question

En ce moment j'ai: 1) une configuration de WCF pour retourner un bloc de xml (plus précisément il est le contenu d'un calendrier d'Exchange 2003). 2) une forme VB6 avec une commande sur elle accédant à la WCF via un objet construit sur le moniker de service y compris le contenu du fichier de contrat WSDL.

fonctionne bien que lorsque la corde étant passée à travers est d'une taille acceptable. Lorsque je tente de retourner l'ensemble xml généré sur la WCF côté je rencontre l'erreur suivante: « Le quota de taille maximale des messages pour les messages entrants (65536) a été dépassé. Pour augmenter le quota, utilisez la propriété MaxReceivedMessageSize sur l'élément de fixation approprié. »

Quand j'ajouter une configuration de liaison dans la WCF app-config pour augmenter le maxReceivedMessageSize, cela n'a aucun effet - sans doute que le client VB6 est à ce aveugle. (Le contrat WSDL généré ne comprend même pas la valeur dans son xml)

* Lecture autour, il y a la suggestion que je dois faire un changement de configuration similaire sur le côté client. J'ai donc créé un fichier VB6.EXE.CONFIG et copié les détails de liaison-configuration pour ce. J'ai ensuite étendu le sobriquet d'inclure ceci: = liaison WSHttpBinding_IExchange, bindingNamespace = 'Exchange', bindingConfiguration = 'ExchangeBinding'

Je suis cependant reçois toujours le même message d'erreur concernant le quota de taille.

lorsque les erreurs d'orthographe des éléments de liaison ou bindingNamespace du sobriquet ci-dessus que je reçois une erreur attendue, mais lorsque les erreurs d'orthographe l'élément bindingConfiguration i obtenir aucune erreur, comme si cet élément est sans importance de toute façon.

Il me semble avoir les morceaux, mais pas la solution de travail en ce moment. Toute personne idées?

  • L'objet obj est déclaré du type proxy d'interface. Le sobriquet est alors définie pour inclure uniquement l'adresse et le type de liaison. Puisque vous utilisez seulement les paramètres par défaut du wsHttpBinding, vous n'êtes pas tenu de fournir une valeur de bindingConfiguration. Si vous devez outrepassant toutes des paramètres par défaut pour la liaison, vous pouvez fournir un fichier de configuration d'application avec le nom file.exe.config et placez-le dans le répertoire du programme du client

Pas de solution correcte

Autres conseils

Personnellement, je créer une bibliothèque .NET exposée COM que vous appelez de l'VB6. La bibliothèque .NET peut contrôler tous les clients et la liaison VB6 serait tout simplement parler avec des chaînes DLL et en passant autour.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top