このサンプルでは、ローカル コンピュータにインストールされた UDDI (Universal Description, Discovery, and Integration) V2 サービスを使用した基本操作を実行する、Windows Communication Foundation (WCF) クライアントを実装する方法を示します。UDDI レジストリは、Windows Server 2003 と共にリリースされた UDDI サービスの一部です。
![]() |
---|
このサンプルのセットアップ手順とビルド手順については、このトピックの最後を参照してください。 |
このサンプルは、ローカルにインストールされた UDDI レジストリと通信する、クライアント コンソール プログラム (.exe) で構成されています。また、このサンプルは他の UDDI Inquire と UDDI Publish サービスの実装とも通信します。クライアント アクティビティは、コンソール ウィンドウに表示されます。
サンプル ソースには、自動生成された次のファイルが含まれます。
UddiTypes.cs (UDDI 型)
UddiInquireClient.cs (UDDI Inquire クライアント)
UddiPublishClient.cs (UDDI Publish クライアント)
これらのファイルを再生成して、Svcutil.exe で使用できます。ただし、サンプルを実行するために再生成する必要はありません。
前述のファイルを生成するには
「UDDI Schema」からファイルをダウンロードし、UddiTypes.xsd という名前で保存します。
次のコマンドを使用して UddiTypes.cs を生成します。
xsd.exe /classes UddiTypes.xsd
次のコマンドを使用して UddiInquireClient.cs を生成します。
svcutil.exe /out:UddiInquireClient.cs http://uddi.org/wsdl/inquire_v2.wsdl
UddiInquireClient.cs を開き、次のインターフェイスの宣言以降の型宣言をすべて削除します (次の宣言は削除しません)。
public interface Inquire {...}
さらに、次に示す最初の型メッセージ宣言以前のすべての型宣言が削除されていることを確認します (次の宣言は削除しません)。
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute( "System.ServiceModel", "3.0.0.0")] [System.ServiceModel.MessageContractAttribute( IsWrapped=false )]
次のコマンドを使用して UddiPublishClient.cs を生成します。
svcutil.exe /out:UddiPublishClient.cs http://uddi.org/wsdl/publish_v2.wsdl
UddiPublishClient.cs を開き、次の宣言以降のすべての型宣言を削除します (次の宣言は削除しません)。
public interface Publish {...}
さらに、次に示す最初の型メッセージ宣言以前のすべての型宣言を削除します (次の宣言は削除しません)。
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute( "System.ServiceModel", "3.0.0.0")] [System.ServiceModel.MessageContractAttribute( IsWrapped=false )]
名前空間 Uddiorg.api 内部のすべての宣言 (UddiInquireClient.cs 内で生成済み) を削除します。
クライアントは次のプロキシを使用して、UDDI レジストリから情報を取得する操作を実装します。
public void Login(string username, string password)
Publish サービスへのログオンに使用されます。Publish サービスの get_authToken() 操作を使用します。
public businessInfo[] GetBusinessByName(string businessName)
提供された文字列と一致する名前を持つサービスの UDDI レジストリを照会します。Inquiry サービスの find_business() 操作を呼び出します。
public string PublishBusiness(string businessName, string description)
UDDI レジストリにビジネスを公開します。Publish サービスの save_business() 操作を使用します。
public businessInfo[] GetMyBusinesses()
指定したユーザーによって公開されたすべてのビジネスを返します。Publish サービスの get_registeredInfo() 操作を使用します。
public businessInfo GetMyBusinessByName(string businessName)
公開したユーザーとビジネス名を指定してビジネスを検索した場合に、最初に検索されたビジネスを返します。Publish サービスの get_registeredInfo() 操作を呼び出します。
public void DeleteMyBusinesses()
指定したユーザーによって公開されたすべてのビジネスを削除します。Publish サービスの delete_business() 操作を使用します。
public void DeleteMyBusiness(string businessKey)
キーで識別される、指定したユーザーによって公開されたビジネスを削除します。Publish サービスの registeredInfo() と delete_business() 操作を使用します。
クライアントは構成ファイル (App.config) を使用して、クライアントが通信する Inquire サービスと Publish サービスのエンドポイントとバインディングを指定します。クライアント エンドポイント構成は、構成名、サービス エンドポイントの絶対アドレス、バインディング、およびコントラクトで構成されます。次の構成を参照してください。
<bindings>
<basicHttpBinding>
<binding name="Https">
<security mode="Transport">
<transport clientCredentialType="Ntlm"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint name="Inquire"
address="https://<machine with UDDI Services>/uddi/inquire.asmx"
binding="basicHttpBinding" bindingConfiguration="Https"
contract="Inquire" />
<endpoint name="Publish"
address="https://<machine with UDDI Services>/uddi/publish.asmx"
binding="basicHttpBinding" bindingConfiguration="Https"
contract="Publish" />
</client>
サンプルを設定、ビルド、および実行するには
Windows Server 2003 に UDDI サービスがインストールされていることを確認します。次に [プログラムの追加と削除]、[Windows コンポーネントの追加と削除] の順に移動し、[UDDI サービス] がオンになっていることを確認します。オフの場合はこのチェックボックスをオンにして、ウィザードに従って UDDI サービスをインストールします。
「Windows Communication Foundation サンプルの 1 回限りのセットアップの手順」が実行済みであることを確認します。
ソリューションの C# 版または Visual Basic .NET 版をビルドするには、「Windows Communication Foundation サンプルのビルド」の手順に従います。
UDDI クライアントのユーザーが UDDI サービスに対して認証するための正しい資格情報を所有していない場合、ローカル ユーザー (UDDI サービスがインストールされているコンピュータの) を作成し、App.config 構成ファイルの
<appSettings>
要素を更新する必要があります。UDDI Publish 操作は、既定ではローカル管理者だけに許可されています。新しく作成されるユーザーが UDDI Publish 操作にアクセスできるようにするには、ユーザーをローカル管理者として作成するか、または UDDI サービス コンソールで、このユーザー アカウントを含めるように発行者グループ名のロールを変更します。ロールの変更を行うには、UDDI サービス コンソールを開いて UDDI サービス ノードを右クリックし、[ロール] タブをクリックして発行者のアカウントを選択します。
単一コンピュータ構成か複数コンピュータ構成かに応じて、「Windows Communication Foundation サンプルの実行」の手順に従います。
Copyright © 2007 by Microsoft Corporation.All rights reserved.