問題タブ [irs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - SOAP HttpWebRequest による添付ファイルの送信
HttpWebRequest
コンソール アプリケーションで添付ファイルを送信しようとしています。これに関する理解できる支援を求めてインターネットを検索して精査した数日後、私はこのサイトからまともな解決策だと思うものを思いつきました
すべてを正しく行ったと思いますが、次のエラーが表示されます。
終了境界が検出される前に、マルチパート ストリームが終了しました。
質問:
受け取っ
たエラーについて支援/ガイダンスを得たいと思っています。また、XML ドキュメントmultipart
の実際のファイルを添付する際の支援も受けたいと思っています。byte[]
要件:
- 添付する必要があるデータ ファイルは、.xml である必要がある XML ファイルです
MTOM Attachment
。それを作るためにMtom
、私の理解では、の要素のmessageEncoding
属性に値が必要であり、これがそのようにエンコードされることを確認する必要があります。<binding>
app.config
"Mtom"
- ビジネス要件 (厳密なもの) に基づいて
byte[]
、コンテンツそのものではなく、ファイルの を送信する必要があります。
ウェブリクエスト方法
リクエストを送信する方法この私の投稿
に
基づいて、私は を使用して適切に圧縮していると思います。HttpWebRequest
GZip
MIME 情報と添付ファイルをストリームに書き込むために使用されるメソッド
Soap Body Snippet Element
を使用Fiddler
することで、リクエストが実際にどのように見えるかを確認できます。私には、添付ファイルが実際には XML としてリクエストに追加されているように見えますbyte[]
。
この後byte[]
、添付ファイルの になります。現在、完全な XML ドキュメントが表示されています。
xml - IRS ACA A2A BulkRequestTransmitter Web サービスへのリクエストの送信
IRS の BulkRequestTransmitter サービスにリクエストを送信しようとしています。C# を使用して手動でメッセージを作成しています (WCF ではなく、すべての XML を作成しているだけです)。私が作成した XML は有効であり、X509 証明書で署名できます (したがって、このサービスで多くの人が苦労している WS-Security エラーのポイントを過ぎています)。発信リクエストに gzip 圧縮を適用することもできます。私が知る限り、BulkExchangeFile を適切に添付しています。これに取り組んでいる間、メッセージが MTOM でエンコードされていることを確認するように指示するエラーをときどき見ましたが、わかる限り適切なヘッダーとセパレーターを適用しました。現在受け取っているエラー メッセージは次のとおりです。
私の完全な (圧縮されていない) リクエストの編集版を以下に示します。ここに欠けているものを誰でも特定できますか? または、実際のリクエストの例がある場合は、それを提供していただけますか?
soap - IRS ACA 1095B BulkRequestTransmitter: 無効な WS セキュリティ ヘッダー - SOAP UI
SOAP UI を介して IRS ACA 1095 B Ws を呼び出そうとしています。SOAP UI でキーストアを構成しましたが、インポートすると OK と表示されます。IRS Doc、ACABusinessHeader、ACATransmitterManifestReqDtl、Timestamp を参照する 3 つの要素に署名しました。Gzip/Wsa Header/Attachment/MTOM を使用して、または使用せずに、添付ファイルのない単純な SOAP 要求を試してみました。
メッセージ内の WS セキュリティ ヘッダーが無効です。https://www.irs.gov/for-Tax-Pros/Software-Developers/Information-Returns/Affordable-Care-Act-Informationにある AIR Submission Composition and Reference Guide のセクション 5 に記載されている送信手順を確認してください。 -Return-AIR-Program、問題を修正し、再試行してください。
エラー コード: TPE 1122。
完全な SOAP Ui リクエスト メッセージを添付しました。
どんな種類のヘルプも大歓迎です。
--->
c# - IRS ACA 提出 - エラー TPE1122、メッセージ内の WS セキュリティ ヘッダーが無効です
A2A チャネルを使用して IRS 政府サイトに ACA フォームを送信しようとしています。X509 と SHA1 を使用して、XML と必要な暗号化を作成できます。
XML を IRS サイトに送信しているときにエラーが発生しThe WS Security Header in the message is invalid. Please review the transmission instructions outlined in Section 5 of the AIR Submission Composition and Reference Guide located at https://www.irs.gov/for-Tax-Pros/Software-Developers/Information-Returns/Affordable-Care-Act-Information-Return-AIR-Program, correct any issues, and try again.
、エラー コードは -TPE1122
SoapUI から投稿しようとしているサンプル XML パーツを次に示します。
. . . 1094/1095C アプリケーション/xml 843C9A557FC3ABF06EF26C5A4A69E19C 2426 Form1094C_Request_TCC_20160225T2003478641Z.xml
これで何が間違っている可能性があるか教えてください。
c# - 不正な参照要素
セキュリティ ヘッダーに参照を追加しようとすると、かなり一般的なエラーが発生します。
不正な参照要素
同様の結果で次のことを試しました:
- 要素の をオブジェクト
ID
の として渡すことにより、ドキュメント内の要素を参照します。URI
Reference
- メソッドを介して に
XmlElement
オブジェクトを渡します。この StackOverflow postにあるオーバーロードを使用して参照を取得しています。Reference
LoadXml()
XmlElement
GetIdElement
として空の文字列を渡すとURI
、 のComputeSignature()
メソッドはSignedXml
期待どおりに機能します。ただし、セキュリティ ヘッダーへの参照を最大 3 つ追加する必要があります。
更新 #1このブログ投稿
の
おかげで、そこから簡略化されたバージョンを作成できました。問題の原因は、属性とプレフィックスの使用にあると思います。Namespace
更新 #2要素の属性の
名前空間宣言がこのエラーの原因となっているようです。Id
<Timestamp>
更新#3
これでうまく
いったと思います。以下の私の回答投稿を参照してください。
作業サンプル:名前空間が定義された は機能しないことに
注意してください。Id XAttribute
名前空間が定義されていId XAttribute
ない場合は機能します。
c# - IRS-A2A BulkRequestTransmitter メッセージが適切にフォーマットされていないか、解釈できない
BulkRequestTransmitter Web サービスを介して送信しようとすると、次のエラーが表示されます。コンポジション ガイドは、このメッセージに関する限りあまり役に立ちません。私の SOAP XML とコンポジション ガイドの SOAP を比較すると、同じように見えます。別の目で問題がどこにあるかを確認できることを願っています。
メッセージが適切にフォーマットされていないか、解釈できません。https://www.irs.gov/for-Tax-Pros/Software-Developers/Information-Returns/Affordable-Care-Act-Informationにある AIR Submission Composition and Reference Guide のセクション 3 で概説されている XML 標準を確認してください。 -Return-AIR-Program、問題を修正し、再試行してください。
私が試したこと:
- SOAP エンベロープで空白を使用して (空白を使用せずに) 送信しようとしました。
- Form Data XML を XML 形式で送信しようとしました。
フォーム データの形式で送信しようとしましたbase64string
(この送信はそうでした)。ds
Signature 要素にプレフィックスを追加しました。この SO 投稿を使用して、署名要素にプレフィックスを追加しました。- 「プリティ プリント」形式のフォーム データを、更新された構成ガイド (v4.2) に従って追加しました。
- 構成ガイドのセクション10.3で概説され
MIME
ている要求のフォーマットをコピーしました。BulkTransmitterService
- 2 つのソリューションを作成しました。1.) SOAP 要求に必要な XML を手動で作成し、
HttpWebRequest
オブジェクトを介して送信します。WSDL
2.)としてプロジェクトにインポートされた を介して送信要求を送信し、Service Reference
カスタム エンコーダを使用しGZip and Mtom Encoding
て、SOAP ステータス要求 ( を介して送信HttpWebRequest
) に必要な XML を手動で作成します。
更新 #1
いくつかの新しい追加に基づいて要求を更新しました。
ds
Signature 要素にプレフィックスを追加しました。- 「プリティ プリント」形式のフォーム データを、更新された構成ガイド (v4.2: セクション 5.4.2) に従って追加しました。
更新 #2必要に応じてスキーマ参照をインポートする Visual Studio の新しいインスタンス内で .xml ファイル
を手動で作成し始めました。私はこれをあらゆる種類のアプリケーション作成の外で行っています。SOAP
そうすることでSOAP
、アプリケーションを介して作成していた. 私が見つけたバグはマニフェスト XML 内にあり、IRS スキーマに準拠していませんでした。
今後 24 時間以内にこれらを調査し、それに応じて更新します。
には またはのいずれかurn:MailingAddressGrp
の子が必要です。その子には、適切な住所要素が含まれている必要があります。私のコードには現在、の直接の子がありません。urn:USAddressGrp
urn:ForeignAddressGrp
urn:MailingAddressGrp
urn1:DocumentSystemFileNm
of の値Form1094C_Request_[TCC]_yyyyMMddThhmmssfffZ.xml
が正しくありません。それがどうあるべきか、まだ完全にはわかりません。要素には、私が持っている要素にurn1:BulkExchangeFile
関連する問題xop:Include
があります。スキーマは base64Binary タイプを必要としています。
アップデート #2.5
USAddressGrp
要素を含めるように XML 生成プロセスを更新しました。- ミリ秒単位で 1 文字余分にあることがわかりました (3 文字ではなく 4 文字)。これを修正し、ファイル名の先頭から文字列「Form」を削除すると、 の値が
urn1:DocumentSystemFileNm
スキーマに対して正常に検証されました。
アップデート #3
- 私が行った更新に基づいて完全な要求を更新しました。現時点では、リクエストの何が問題なのかを推測できません。誰かが何かギラギラしているのを見たら、助けてください!
アップデート #4
行われた追加の更新に基づいて完全な要求を更新しました。
ds
別の SO ユーザーのフィードバックに基づいて、署名からプレフィックスを削除しました。ds
このユーザーは、事後にプレフィックスを署名に追加して署名を再計算することなく、これらの要求を機能させることができます。SO ユーザーはまた、
<inc:Include>
要素の子要素として設定されている要素 で自分の要求が機能していることを確認しました<BulkExchangeFile>
。MIME
構成ガイドのセクション 10.3 のサンプルに従って、ヘッダーが正しいことを確認しました。
アップデート #5
現在、2 つの解決策があります。1 つは、SOAP 要求に必要な XML を手動で作成して送信し
HttpWebRequest
、. もう 1 つはWSDL Service Reference
、送信リクエストに を使用し、以下に概説するカスタム エンコーダーを使用して、ステータスの SOAP リクエストに必要な XML を手動で作成します。この更新の時点で、解決策 1 では、送信リクエストを行うと上記のエラーが表示され、ステータス リクエストを行うと以下のエラーが表示されます。ただし、ソリューション 2 を使用すると、両方の要求 (送信とステータス) で以下のエラーが表示されます。
証明書の問題の可能性を調べて、これらの解決策のいずれかで進展があるかどうかを確認しています。
更新 #6
私が遭遇した多くの問題があり、それにより私は遅れました。核心的な詳細は省きますが、要するに、セキュリティ証明書が IRS システムに登録されておらず、証明書が適切にインストールされていなかったため、 を通じて情報にアクセスできませんでしたX509Store
。最後に、これらの作業が完了し、サーバーから IRS にデータを送信するテストを行うことができました (対、適切な証明書を持たないローカル マシン)。残念ながら、以下に詳述する WS-Security エラーが引き続き表示されます。現在送信しているもので完全なリクエストを更新しました。
次のメッセージでエラーが発生しました: メッセージ内の WS セキュリティ ヘッダーが無効です。https://www.irs.gov/for-Tax-Pros/Software-Developers/Information-Returns/Affordable-Care-Act-Informationにある AIR Submission Composition and Reference Guide のセクション 5 に記載されている送信手順を確認してください。 -Return-AIR-Program、問題を修正し、再試行してください。
MIME ヘッダーのすべての改行は現状のままであり、改行は想定どおりのものだと思います。 FormData 添付ファイルは Pretty Print として送信されますが、SOAP エンベロープはそうではありません。この投稿の SOAP エンベロープは、読みやすいように書式設定されています。
更新 #7:
ユーザーに感謝します: jstill と FatherOfWine に彼らが以下に投稿した内容を提供し、Bon にこのプロジェクトの以前の支援を提供してくれました。提出物を機能させるために、1 つの壁を突破しました。それは今働いています。ステータスリクエストも機能しています。ただし、ステータスと添付ファイル (エラー データ ファイル) を取り出すには、それを処理する方法を理解する必要があります。
完全なリクエスト: