Как я могу увеличить maxreceivedmessageize при вызове WCF из VB6?

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

  •  26-10-2019
  •  | 
  •  

Вопрос

На данный момент у меня есть: 1) установка WCF для возврата блока XML (в частности, это содержимое календаря от Exchange 2003). 2) Форма VB6 с командой на ИТ, получившей доступ к WCF через объект, построенный на прозвище службы, включая содержимое файла контракта WSDL.

Это работает нормально только тогда, когда передача строки имеет приемлемый размер. Когда я пытаюсь вернуть весь XML, сгенерированный на стороне WCF, я столкнулся с следующей ошибкой: «Была превышена максимальная квота размера сообщения для входящих сообщений (65536). . "

Когда я добавляю конфигурацию привязки в приложение WCF, чтобы увеличить MaxReceivedMessageize, это не оказывает эффекта-предположительно, поскольку клиент VB6 слеп к этому. (Сгенерированный контракт WSDL даже не включает значение в его XML)

Читая вокруг*, есть предположение, что мне нужно внести аналогичный изменение конфигурации на стороне клиента. Поэтому я создал файл vb6.exe.config и скопировал сведения о привязке конфигурации в это. Затем я расширил прозвище, чтобы включить это: binding = wshttpbinding_iexchange, bindingNamespace = 'Exchange', bindingConfiguration = 'ExchangeBinding'

Однако я все еще получаю то же сообщение об ошибке относительно квоты размера.

При ошибке элементов привязки или связывания привязанного прозвища выше, я получаю ожидаемую ошибку, но при неправильном составе элемент связывания привязки я не получаю ошибки, как будто этот элемент в любом случае не имеет значения.

У меня, кажется, есть кусочки, но не рабочее решение в данный момент. Есть какие -нибудь идеи?

  • Объект OBJ объявляется, что он имеет интерфейс -тип прокси. Затем прозвище установлено, чтобы включить только адрес и тип привязки. Поскольку вы используете только настройки по умолчанию для WSHTTPBinding, вам не нужно предоставлять значение BindingConfiguration. Если вам потребуется переоценка каких -либо настроек по умолчанию для привязки, вы можете предоставить файл конфигурации приложения с именем file.exe.config и поместить его в каталог программы клиента

Нет правильного решения

Другие советы

Лично я бы создал разоблаченную библиотеку .NET COM, которую вы называете VB6. Библиотека .NET могла бы контролировать все привязки клиента, и VB6 будет просто разговаривать с DLL и проходить строки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top