2011-06-13 12 views
1

Webサービス(https/ssl/basicHttpBinding)を使用しようとしています。私は問題のないサービス参照を追加し、非同期に呼び出します。私はコールバックにクライアントのインスタンスを渡します。必要とされる最終的な受信者のためのWCFクライアント - なぜこのエラーが発生しますか?

ヘッダー http://schemas.xmlsoap.org/ws/2004/08/addressing:Action が、メッセージ中に 存在しません:私は、コールバックでサービスから結果を取得しようと、このエラーが発生します。

var Result = client.BeginTheServiceOperation(header, CallBack, client); 

private static void CallBack(IAsyncResult ar) 
{ 
    var client = ar.AsyncState as MyServiceSoapClient; 
    var result = client.EndTheServiceOperation(ar); // ERROR OCCURS HERE 
    Console.WriteLine(result); 
} 

私は何をしないのですか?

おかげ

+0

サービスを呼び出す場所にコードを掲載できますか? – cadrell0

+0

BeginTheServiceOperationの呼び出しで質問を更新しました。ありがとう – KindaNewbie

+0

BeingTheServiceOperationを呼び出すメソッド全体を投稿してください – cadrell0

答えて

1

サービスがSOAP 1.1を期待していたことが判明しました.WCFはデフォルトでWCFがSOAP 1.2を使用しています。私は新しいカスタムバインディングを作成し、その設定を渡す必要があり、すべて正常に機能しました。これは正しい方向に私を指摘しました:http://social.msdn.microsoft.com/Forums/en/wcf/thread/f3707303-4f35-4079-ac0b-eba4717cada8

+0

この自己回答を回答としてマークすることができます。 FAQによれば、「あなた自身の質問に\ [... \]答えるのもいいです。 –

1

は、これは、あなたの結合に適切なメッセージの設定オプションを適用していない徴候です。サービスはWS-Addressingヘッダーを持つSOAPメッセージを期待していますが、クライアントがそれらを渡していないようです。デフォルトのバインディングはそれらを渡すので、バインディングを変更して渡されないようにする必要があると仮定しなければなりません。

さらに詳しい情報が必要な場合は、バインディング設定コード/ config XMLも元の投稿に追加してください。