IRS-A2A Недопустимые дочерние элементы gzipMessageEncoding в App.config
Я работаю над интеграцией канала A2A для IRS через их WSDL и в настоящее время застрял на проблеме в моем App.config. В настоящее время есть предупреждение для <gzipMessageEncoding/>
узел моего App.config:
Элемент 'binding' имеет недопустимый дочерний элемент 'gzipMessageEncoding'. Список возможных ожидаемых элементов: (...).
Я просмотрел решения, предоставляемые отцом OfWine, Russ и jstill, прежде всего здесь, и теперь я застрял в этом сбое конфигурации. Из того, что я исследовал, люди говорят, что вы можете просто проигнорировать это как предупреждение и продолжить, но попытка отправить в IRS приводит к следующей ошибке.
Неверный элемент в конфигурации. Расширение 'gzipMessageEncoding' не является производным от правильного базового типа расширения 'System.ServiceModel.Configuration.BindingElementExtensionElement'.
Ниже приведен фрагмент конфигурации моей сервисной модели. У меня кодировщик находится не в том месте, которое предлагал папа, но я считаю, что у меня правильная настройка типов.
<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 ответ
Это то же самое предупреждение, которое я получаю, когда проверяю свой 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>