WSDL を持っていない自分の管理下にないリモート エンドポイントがありますが、SOAP メッセージのサンプルはあります。はさみで遊んだり、手で石鹸の封筒を作ったりしたくないので、(WCF クライアントで使用されると) 必要な SOAP 要求を生成し、応答を解析するサービス/データ コントラクトを作成することを考えました。各エンベロープのヘッダーにアクション アドレスが含まれているように見えるという事実で、最初の方法ですぐに問題が発生しました。
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">urn:IService1/Auth</Action>
</s:Header>
<s:Body>
<Auth>
<login xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Password i:nil="true" />
<userName i:nil="true" />
</login>
</Auth>
</s:Body>
</s:Envelope>
これは、私のメッセージにひどく反対する呼び出し先を台無しにします。さまざまな構成アプローチを試しました (web.config を使用してモック サービスとクライアントを構成します) が、この煩わしい Action ノードを削除するものは何もないようです。私がやりたくないことをせずにこれを解決する方法(XMLを手で遊ぶ)