Discovery: UDDI
This sample demonstrates how to implement a Windows Communication Foundation (WCF) client that performs basic operations with a Universal Description, Discovery, and Integration (UDDI) V2 service that is installed on the local machine. UDDI Registry is part of the UDDI Services released with Windows Server 2003.
Note: |
---|
The setup procedure and build instructions for this sample are located at the end of this topic. |
The sample consists of a client console program (.exe) that communicates with a locally installed UDDI Registry. The sample can also communicate with other UDDI Inquire and Publish service implementations. Client activity is visible in the console window.
The sample sources include the following auto-generated files:
UddiTypes.cs (UDDI types)
UddiInquireClient.cs (UDDI Inquire Client)
UddiPublishClient.cs (UDDI Publish Client)
You can regenerate these files to work with Svcutil.exe. You do not have to regenerate these files to run the sample.
To generate the files previously listed
Download the file from http://www.uddi.org/schema/uddi\_v2.xsd and save it as UddiTypes.xsd.
Generate UddiTypes.cs by using the following command:
xsd.exe /classes UddiTypes.xsd
Generate UddiInquireClient.cs by using the following command:
svcutil.exe /out:UddiInquireClient.cs http://uddi.org/wsdl/inquire_v2.wsdl
Open UddiInquireClient.cs and remove all the type declarations after (but not including) the declaration of the
public interface Inquire {...}
and before (but not including) the first typed message declaration
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute( "System.ServiceModel", "3.0.0.0")] [System.ServiceModel.MessageContractAttribute( IsWrapped=false )]
Generate UddiPublishClient.cs by using the following command:
svcutil.exe /out:UddiPublishClient.cs http://uddi.org/wsdl/publish_v2.wsdl
Open UddiPublishClient.cs and remove all the type declarations after (but not including) the following declaration.
public interface Publish {...}
To (but not including) the first typed message declaration.
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute( "System.ServiceModel", "3.0.0.0")] [System.ServiceModel.MessageContractAttribute( IsWrapped=false )]
Remove all the declarations inside the namespace Uddiorg.api (these declarations have been already generated in the UddiInquireClient.cs.
The client uses the proxies to implement operations that retrieve information from the UDDI registry:
public void Login(string username, string password)
Used to log on to the Publish service. Uses the get_authToken() operation of the Publish service.
public businessInfo[] GetBusinessByName(string businessName)
Queries the UDDI Registry for services with names that match the string provided. Calls the find_business() operation of the Inquiry service.
public string PublishBusiness(string businessName, string description)
Publishes a business in the UDDI Registry. Uses the save_business() operation of the Publish service.
public businessInfo[] GetMyBusinesses()
Returns all businesses published by a given user. Uses the get_registeredInfo() operation of the Publish service.
public businessInfo GetMyBusinessByName(string businessName)
Returns the first business found with a given name published by a given user. Calls the get_registeredInfo() operation of the Publish service.
public void DeleteMyBusinesses()
Deletes all businesses published by a given user. Uses the delete_business() operation of the Publish service.
public void DeleteMyBusiness(string businessKey)
Deletes a business identified by the key, published by a given user. Uses the registeredInfo() and delete_business() operations of the Publish service.
The client uses a configuration file (App.config) to specify the endpoint and binding for the Inquire and Publish services with which it communicates. The client endpoint configuration consists of a configuration name, an absolute address for the service endpoint, the binding, and the contract, as shown in the following configuration.
<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>
To set up, build, and run the sample
Ensure you have UDDI Services installed on your Windows Server 2003. Go to Add/Remove Programs, Add Windows Components and ensure that UDDI Services is checked. If not, mark the checkbox and follow the wizard to install UDDI Services.
Ensure that you have performed the One-Time Setup Procedure for the Windows Communication Foundation Samples.
To build the C# or Visual Basic .NET edition of the solution, follow the instructions in Building the Windows Communication Foundation Samples.
Create local user on the machine with UDDI Services (unless one already exists) to be used to authenticate to UDDI Services and update the <appSettings> element in the App.config configuration file to specify the correct credentials.
Update the endpoint/@address value in App.config to specify the DNS name to the machine that runs UDDI Services.
Note: Check which form of the DNS name is used as a subject name by the SSL Server Certificate used by IIS and use that form, to ensure HTTPS DNS authentication passes.
By default UDDI Publish operations are allowed only to local administrators. Ensure newly created user can access Publish UDDI service, by either making the user as local Administrator or changing role for Publisher Group Name in UDDI services console to include the user account. To do the latter, open UDDI Services console, right-click your UDDI Services node, select the Roles tab and select the publisher's account.
To run the sample in a single- or cross-machine configuration, follow the instructions in Running the Windows Communication Foundation Samples.
Send comments about this topic to Microsoft.
© Microsoft Corporation. All rights reserved.