2011-05-18 21 views
4

C#でWebサービスを使用しようとしています。私がWebサービスクラスから関数を呼び出そうとするたびに、 "SOAPヘッダーアクションが理解できませんでした"というメッセージが表示されます。私のプロジェクトでWebサービスを指すWeb参照[サービス参照ではない]を追加しました。次のステップは、プロジェクトのWeb参照にSOAPヘッダーの操作が理解されていません

1)右クリックを追加するために撮影された - 私は、ヘッダーでこれを見つけたWebブラウザでWebサービスを検討する際WebReferenceに追加>

<wsdl:definitions name="MyService" targetNamespace="http://tempuri.org/"> 
    <wsp:Policy wsu:Id="WSHttpBinding_ICAIService_policy"> 
     <wsp:ExactlyOne><wsp:All><sp:TransportBinding> 
    <wsp:Policy> 

は、私は

WebStruct webS = new WebStruct(); 
webS.Name = "Peter"; 
webS.ID = 22; 

webS.Find(webS); 
+1

はどのようにあなたの質問に関連した '' wsHttpBinding'とwebHttpBinding'ある契約? Web参照は古いASMX APIを使用し、これらのバインディングで公開されているサービスはサポートしていません。実際には、webHttpBindingはサービス参照の追加でもサポートされていません。 –

答えて

0

は、あなたのWebサービスプロバイダに確認できるWebサービス機能を呼び出すために、次のコードをやりましたか?リクエストを処理するためにカスタマイズされたヘッダー情報が必要なようです。サービスプロバイダによるこのようなヘッダーの追加は、セキュリティを強化するために非常に一般的です。

4

Web参照を削除し、代わりにサービス参照を追加してください。

+1

はいこれは私のために同じエラーメッセージを修正しました。ありがとうございました。 – hamish

+0

これは私のために修正されませんでした。 WsBindingはこれらのヘッダーを理解していません –

2

単純なサービスエンドポイントバインディングBasicHttpBindingを使用するようにしてください。このバインドは.NET 2.0と互換性があります。ここ

-2

はいくつかの素晴らしいコードは、あなたがそれを必要とする場合すぎる:

//Set username and password for Basic Auth 
service.ClientCredentials.UserName.UserName = "usernamehere"; 
service.ClientCredentials.UserName.Password = "passwordhere"; 

//Ignore invalid SSL certs 
System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; 
+5

-1:これは質問と何が関係していますか? –

0

SOAPACTIONエラーが唯一の私が入った時に「設定サービス参照...」離れてプロパティを行って、チェックが入っこれらのオプションを使用してサービス参照を更新します。

およびこれらの2つのボックスチェックが入っ:

TICKは、非同期操作 TICKは常にメッセージを生成する生成

関連する問題