当社のサードパーティ API は 2 つの異なる Web サービスを提供しますが、メソッドとモデルは同じです。それにもかかわらず、それらは URI (Web サービス パス、アクション パス [操作コントラクト]) のみが異なります。
だから私はすることにしました:
VS を使用して wsdl からコードを生成します。
名前空間を編集して同じものを使用し、「共通」にし、代わりにサービス参照を使用しないように、Reference.cs編集コードを使用します。
使用するサービスの正しい URI を処理する新しいプロキシを作成します (内部に Reference.cs をラップします)。
現在、「Method1」に問題があります。アクション名が異なるためです。次の例外があります。
「サーバーは HTTP ヘッダー SOAPAction の値を認識しませんでした: http://www.api.com/service/Method1」
正しいアクション名はhttp://www.api.com/service1/Method1です。
ここでの質問は、各サービスの各メソッドのアクション名を修正するために使用できる構成または動作はありますか?
それとも、API の実装ごとにコントラクトを追加し続ける限り、それぞれのコントラクトを追加し続けて、これに ChannelFactory を使用する必要がありますか?
助けてください、ありがとう。