1

WCF を介して IRS に SOAP メッセージを送信しようとしていますが、MTOM 添付ファイルの形式が正しくないため、拒否され続けます。

Content-Transfer-Encoding問題を自分の価値に絞り込みました。Binary(の省略形)に設定され8-bitます。

IRS サービスは7-bit、8 ビットでエンコードされた添付ファイルと共に を使用するよう求めています (つまり、UTF-8 でエンコードし、非 ASCII 文字を使用していないことを保証します)。

リクエストを gzip するために、カスタム メッセージ エンコーダーを既に使用しています (レスポンスはプレーン テキストで返されます)。これがWriteMessage今の私の姿です。

public override ArraySegment<byte> WriteMessage(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset) {
    // get an instance of the underlying encoder
    var encoder = new MtomMessageEncodingBindingElement() {
            MessageVersion = MessageVersion.Soap11WSAddressing10,
            WriteEncoding = System.Text.Encoding.UTF8
        }.CreateMessageEncoderFactory().Encoder;

    // write the message contents
    var uncompressed = encoder.WriteMessage(message, maxMessageSize, bufferManager, messageOffset);

    // compresses the resulting byte array
    return CompressBuffer(uncompressed, bufferManager, messageOffset);
}

何か案は?WriteEncodingプロパティを ASCII または UTF7に変更すると、 .NET は ArgumentException をスローし、フォーマットがサポートされていないことを通知します。

4

2 に答える 2

1

IRS ソリューションに Java Apache CXF および WSS4J を使用していますが、「メッセージが適切にフォーマットされていないか、解釈できません。AIR Submission Composition and Reference のセクション 3 に概説されている XML 標準を確認してください」というエラーが表示される場合https://www.irs.gov/for-Tax-Pros/Software-Developers/Information-Returns/Affordable-Care-Act-Information-Return-AIR-Programにあるガイドを参照し、問題を修正してからもう一度お試しください。」これは、IRS が次のことを期待しているためです。

Content-Type: application/xml
Content-Transfer-Encoding: 7bit
Content-ID: <6920edd2-a3c7-463b-b336-323a422041d4-1@blahurn:us:gov:treasury:irs:common>
Content-Disposition: attachment;name="1094B_Request_BBBBB_20151019T121002000Z.xml" 
于 2016-01-28T22:13:22.347 に答える