WCFを使用して作成されたサービスと通信するためのDelphiクライアント(Delphi 2006)を作成しようとしています。サービスはたった1つの機能でとてもシンプルです。技術的には以下のように:
[ServiceContract (Namespace = "http://www.company.com/sample/")]
public interface IService
{
[OperationContract]
string GetNumber (string name);
}
このサービスをIISでホストし、mexエンドポイントでbasicHttpBindingを使用して公開しました。.NETクライアントで使用できます。
WSDLImp.exeを実行しようとすると、ソースコードユニットが生成されました(ところで、文字列型をカプセル化するための奇妙なクラスが生成されます。Delphiの文字列型と同じにできないのはなぜですか?)。このサービスを呼び出そうとすると、例外が発生します。
EndpointDispatcherでのContractFilterの不一致が原因で、アクション''を含むメッセージを受信者で処理できません。これは、コントラクトの不一致(送信者と受信者の間のアクションの不一致)または送信者と受信者の間のバインディング/セキュリティの不一致が原因である可能性があります。送信者と受信者が同じコントラクトと同じバインディング(メッセージ、トランスポート、なしなどのセキュリティ要件を含む)を持っていることを確認します。
バインディングまたはセキュリティパラメータを変更するようにDelphiWin32クライアントを設定する方法がわかりません。この問題を解決するにはどうすればよいですか?