次の方法で共有


WsUtil コンパイラ ツール

Windows Web Services コンパイラ ツールWsUtil.exeでは、 サービス モデル とデータ型の シリアル化 がサポートされています。 WSDL、XML スキーマ、ポリシー ドキュメントを処理し、C ヘッダーとソース ファイルを生成します。 このツールはマネージド コード用の WSDL コンパイラ ツールに似ていますが、代わりにネイティブ コードを対象としています。

サービス モデルをサポートするために、WsUtil.exeはクライアントとサービスの両方に使用するヘッダーを生成します。 クライアント側の C プロキシ ファイルと、必要に応じてサービス側の C スタブ ファイルが生成されます。

シリアル化をサポートするために、コンパイラはグローバル要素定義の要素説明のヘッダーと、シリアル化エンジンによって使用されるプロキシ ファイル内のすべての型定義情報を生成します。

WSDL ファイル、XML スキーマ ファイル、Web サービス ポリシー ファイルを処理するためのコマンド ライン オプションについては、次のトピックを参照してください。

セキュリティ

WsUtil を使用する場合は、次の問題に注意し、適切な予防措置を確認してください。

  • Wsutil はネットワーク経由で XML メタデータを取得せず、wsutil は、入力メタデータ ファイル内のインポート ステートメントや include ステートメントを解決しません。 Wsutil は wsdl、xsd、およびポリシー ファイルを開いて読み取ります。 XML メタデータは改ざんに対して耐性がありません。 wsdl ファイル、xsd ファイル、ポリシー ファイルのみが信頼できるソースから取得されていることを確認し、使用前と使用後にファイルが改ざんされないように保護してください。 入力ファイルの内容を慎重に確認し、ファイルの内容がアプリケーションで使用しても安全であることを検証します。 Wsutil.exeでは、メタデータ ファイルの信頼性の検証は行われません。
  • Wsutil は、改ざんに強くないヘッダー ファイルとスタブ ファイルを生成します。 これらのファイルへの不正アクセスを防ぐために、wsutil.exeによって生成されたソース ファイルに対して正しいレベルのアクセス権を設定する必要があります。 Wsutil は System.IO.StreamWriter を使用して出力ファイルを作成します。
  • ユーザーは、Wsutil がローカル ファイルを上書きできることに注意する必要があります。また、/out スイッチを使用して、出力ファイルの安全なファイル名とディレクトリを指定するように注意する必要があります。
  • wsutil または wsutilhelper.dll wsutil.exeに読み込まれると、予期せず終了したり、攻撃を受けたり、非常に大量の入力メタデータを処理したりする際に大量のシステム リソースが消費される可能性があります。 このツールは、開発時にのみ使用するように設計されています。このツールは、開発時ツールとしてのみ使用する必要があります。 中間層でポリシー情報を処理しても安全でない場合があります。
  • Wsutilhelper.dll ヘルパー DLL は、ポリシー情報を処理するためにマネージド wsutil.exeに読み込まれます。 ユーザーは、バイナリ パスに同じファイル名を持つ悪意のあるバイナリが存在しないことを確認する必要があります。 同様に、ユーザーはビルド環境で、同じ "wsutil.exe" 名を持つ悪意のあるバイナリが存在しないことを、バイナリ パスが正しく設定されていることを確認する必要があります。
  • Wsutil は、可能な場合は操作フィールドと構造体フィールドに対して SAL 注釈を生成します。 wsutil で生成されたファイルのユーザーは、SAL 注釈で指定された要件に従う必要があります。

サービス モデル レイヤーの概要

シリアル化

Web サービス コンパイラ ツール

WSDL のサポート

スキーマのサポート

ポリシーのサポート