IRS-A2A Недопустимые дочерние элементы gzipMessageEncoding в App.config - PullRequest
0 голосов
/ 18 декабря 2018

Я работаю над интеграцией канала A2A для IRS через их WSDL и в настоящее время застрял на проблеме в моем App.config.В настоящее время есть предупреждение для узла <gzipMessageEncoding/> моего файла App.config:

Элемент 'binding' имеет недопустимый дочерний элемент 'gzipMessageEncoding'.Список возможных ожидаемых элементов: (...).

Я просмотрел решения, предоставленные отцомOfWine, Russ и jstill , в основном здесь , и застрял сейчасна этом конфиге сбой.Из того, что я исследовал, люди говорят, что вы можете просто проигнорировать это как предупреждение и продолжить, но попытка отправки в IRS приводит к следующей ошибке:

Недопустимый элемент в конфигурации.Расширение «gzipMessageEncoding» не является производным от правильного базового типа расширения «System.ServiceModel.Configuration.BindingElementExtensionElement».

Ниже приведен фрагмент конфигурации моей модели сервиса.У меня есть кодировщик в другом месте, чем предполагал папаOfWine, но я считаю, что у меня правильная настройка типов.

  <system.serviceModel>
    <client>
      <endpoint address="[Endpoint Address]"
      binding="customBinding" bindingConfiguration="BulkRequestTransmitterBinding"
      contract="ACABulkRequestTransmitterService.BulkRequestTransmitterPortType"
      name="BulkRequestTransmitterPort" />
      <metadata>
        <policyImporters>
          <extension type="GZipEncoder.GZipMessageEncodingBindingElementImporter, GZipEncoder, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
        </policyImporters>
      </metadata>
    </client>
    <extensions>
      <bindingElementExtensions>
        <add name="gzipMessageEncoding" type="GZipEncoder.GZipMessageEncodingElement, GZipEncoder, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null" />
      </bindingElementExtensions>
    </extensions>  

    <bindings>
      <customBinding>
        <binding name="BulkRequestTransmitterBinding">
          <gzipMessageEncoding innerMessageEncoding="textMessageEncoding" />
          <httpsTransport />
        </binding>
      </customBinding>
    </bindings>
  </system.serviceModel>

ОБНОВЛЕНИЕ 1: Изменение второй переменной в поле типа на GZipMessageEncoder создает новое исключение в том же месте.

'Тип' Utilities.Gzip.GZipMessageEncodingBindingElement, GZipMessageEncoder, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = null 'зарегистрирован для расширения'gzipMessageEncoding 'не может быть загружен.'

Все еще собираюсь попытаться переместить код gzip в свой собственный проект, как показано в ссылке выше.

ОБНОВЛЕНИЕ 2: Перемещение библиотеки Gzip в собственный проект, похоже, помогло устранить исключение, выданное во время выполнения.Я пошел дальше и обновил свой файл App.config выше тем, что изменилось.Я сейчас нахожусь в одной точке / проблеме в обоих моих текущих рабочих методах!лол, но, наверное, лучше в другом вопросе, если до этого дойдет.

1 Ответ

0 голосов
/ 20 декабря 2018

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

Ниже приведен фрагмент моего App.config, имеющий соответствующие элементы:

<system.serviceModel>
  <customBinding>
    <binding name="BulkRequestTransmitterBinding" sendTimeout="00:15:00">
      <gzipMessageEncoding innerMessageEncoding="textMessageEncoding" />
      <httpsTransport />
    </binding>
    <client>
      <!-- Endpoints are setup by the import of the IRS Service so I will not include them here -->
      <endpoint for transmission />
      <endpoint for status />
      <metadata>
        <policyImporters>
          <extension type="[ProjectName].GZipMessageEncodingBindingElementImporter, GZipMessageEncoder, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
        </policyImporters>
      </metadata>
    </client>
    <extensions>
      <bindingElementExtensions>
        <add name="gzipMessageEncoding" type="[ProjectName].GZipMessageEncodingElement, GZipMessageEncoder, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null" />
      </bindingElementExtensions>
    </extensions>
  </customBinding>
</system.serviceModel>
...