WCFを使用して記述されたサービスと通信するためにDelphiクライアント(Delphi 2006)を作成しようとしています。サービスはただ一つの機能で簡単です。技術的には以下のように:Delphi Win32クライアントでWCFサービス(basicHttpBinding)を使用する際の問題
[ServiceContract (Namespace = "http://www.company.com/sample/")]
public interface IService
{
[OperationContract]
string GetNumber (string name);
}
私はIIS上でこのサービスをホストし、MEXエンドポイントとbasicHttpBindingを使用して、それを公開しています。私はそれを.NETクライアントで使用することができます。
WSDLImp.exeを実行しようとしましたが、ソースコードユニットが生成されました(btw、文字列型をカプセル化するwierdクラスが生成されますが、Delphiの文字列型と同じではありません)。
EndpointDispatcherでContractFilterの不一致が原因で、アクション ''のメッセージを受信者で処理できません。例外が発生しました。これは、契約の不一致(送信者と受信者の間の不一致)または送信者と受信者の間のバインディング/セキュリティの不一致のいずれかが原因である可能性があります。送信者と受信者が同じ契約と同じバインディング(セキュリティ要件、たとえばメッセージ、トランスポート、なしなど)を持っていることを確認します。
バインディングまたはセキュリティパラメータを変更するためにDelphi Win32クライアントを設定する方法はありません。この問題を解決するにはどうすればよいですか?
申し訳ありませんが、「ASMXラッパーを追加する」という意味を正確に理解できません。あなたは精巧にできますか? – Hemant
「ASMXラッパーを追加する」とは、WCFサービスと同じメソッドを持つASMX Webサービスをソリューションに追加でき、これらのメソッドがまったく同じタスクを実行することを意味します。このasmx Webサービスを追加すると、.asmxエンドポイントが得られます。このエンドポイントはDelphiクライアントで使用できます。 –
私はもうASMXにジャンプしません:http://johnwsaundersiii.spaces.live.com/blog/cns!600A2BE4A82EA0A6!860.entry。 –