WSDL を介して IRS の A2A チャネルを統合する作業を行っていますが、現在 App.config の問題で立ち往生しています。現在<gzipMessageEncoding/>
、私の App.config のノードに警告があります:
要素「バインディング」に無効な子要素「gzipMessageEncoding」があります。予想される可能な要素のリスト: (...)。
私は、fatherOfWine、Russ、および jstill によって提供されたソリューションを主にここで調べましたが、この構成の問題で行き詰まりました。私が調査したところ、警告としてこれを無視して続行できると人々が言っているようですが、IRS に送信しようとすると次のエラーが発生します。
構成の要素が無効です。拡張機能 'gzipMessageEncoding' は、正しい拡張基本型 'System.ServiceModel.Configuration.BindingElementExtensionElement' から派生していません。
以下は、私のサービス モデル構成のスニペットです。私は、fatherOfWine が提案した場所とは別の場所にエンコーダーを持っていますが、正しい型が設定されていると信じています。
<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:タイプ フィールドの 2 番目の変数を に変更するGZipMessageEncoder
と、同じ場所で新しい例外がスローされます。
「タイプ 'Utilities.Gzip.GZipMessageEncodingBindingElement、GZipMessageEncoder、Version=4.0.0.0、Culture=neutral、PublicKeyToken=null' が拡張機能 'gzipMessageEncoding' に登録されていて、ロードできませんでした。'
上記のリンクに示されているように、gzip コードを独自のプロジェクトに移動しようとしています。
更新 2: Gzip ライブラリを独自のプロジェクトに移動すると、実行時にスローされる例外の解決に役立ったようです。上記の App.config ファイルを変更内容で更新しました。現在の両方の作業方法で同じポイント/問題に直面しています! 笑でも、それに関しては別の質問でおそらく最善です。