Wie kann ich den MaxReced -MessageSize erhöhen, wenn ich einen WCF von VB6 aufruft?

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

  •  26-10-2019
  •  | 
  •  

Frage

Im Moment habe ich: 1) ein WCF -Setup, um einen XML -Block zurückzugeben (insbesondere ist es der Inhalt eines Kalenders von Exchange 2003). 2) Ein VB6 -Formular mit einem Befehl darauf zugreift über ein Objekt, das auf dem Service -Spitznamen mit dem Inhalt der WSDL -Vertragsdatei basiert.

Dies funktioniert nur einwandfrei, wenn die Saite über eine akzeptable Größe besteht. Wenn ich versuche, das gesamte XML zurückzugeben, das auf der WCF-Seite generiert wird, begegne ich den folgenden Fehler: "Die maximale Quote für eingehende Nachrichten (65536) wurde überschritten. Um die Quote zu erhöhen . "

Wenn ich die WCF-App-Config eine Bindungskonfiguration hinzufüge, um die MaxRecebed-MessageSize zu erhöhen, hat dies keinen Einfluss-vermutlich, da der VB6-Client dafür blind ist. (Der generierte WSDL -Vertrag enthält nicht einmal den Wert in sein XML)

Wenn Sie herumlesen*, gibt es den Vorschlag, dass ich eine ähnliche Konfigurationsänderung auf der Client-Seite vornehmen muss. Ich habe also eine Datei vb6.exe.config erstellt und die Details zur Konfiguration von Bindungen darauf kopiert. Ich habe den Spitznamen dann so erweitert, um dies einzuschließen: Binding = wshttpbinding_iexchange, BindingNameSpace = 'Exchange', BindingConfiguration = 'ExchangeBinding'

Ich empfange jedoch immer noch die gleiche Fehlermeldung bezüglich der Größenquote.

Wenn ich die Bindungs- oder BindingNamespace-Elemente des Monikers oben falsch ausschreibe, erhalte ich einen erwarteten Fehler, aber wenn ich das BindingConfiguration-Element falsch ausschreibe, bekomme ich keinen Fehler, als ob dieses Element trotzdem irrelevant wäre.

Ich scheine die Teile zu haben, aber im Moment nicht die Arbeitslösung. Irgendwelche Ideen jemand?

  • Das OBJ -Objekt wird vom Grenzflächen -Proxy -Typ deklariert. Der Spitzname wird dann so eingestellt, dass nur die Adresse und der Bindungstyp enthalten sind. Da Sie nur die Standardeinstellungen für das WSHTTPBinding verwenden, müssen Sie nicht einen BindingConfiguration -Wert angeben. Wenn Sie eine der Standardeinstellungen für die Bindung überschreiben mussten, können Sie eine Anwendungskonfigurationsdatei mit der Namensdatei.exe.config angeben und in das Programmverzeichnis des Clients platzieren

Keine korrekte Lösung

Andere Tipps

Persönlich würde ich eine .NET COM -Bibliothek erstellen, die Sie vom VB6 anrufen. Die .NET -Bibliothek könnte die gesamte Clientbindung steuern und VB6 würde einfach mit einer DLL sprechen und Strings übergeben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top