Creating a WCF Client
The process of creating a WCF C# client to the addnumbers service is similar to that for a Java programming language client. To create a WCF client you will:
Prerequisites to Creating the WCF Client
You must have the following software installed to create the WCF client:
- Microsoft Windows Software Development Kit (SDK) for July Community Technology Preview
- Microsoft .NET Framework 3.0 RTM
- the
csclient-enabled-fromjava.zip
example bundle, which you can download fromhttps://wsit.dev.java.net/source/browse/*checkout*/wsit/wsit/docs/howto/csclient-enabled-fromjava.zip
You must also deploy the
addnumbers
service described in Chapter 8. You can download the service fromhttps://wsit.dev.java.net/source/browse/*checkout*/wsit/wsit/docs/howto/wsit-enabled-fromjava.zip
.The Client Class
The client class uses a generated proxy class,
AddNumbersImpl
, to access the web service. Theport
instance variable stores a reference to the proxy class.Then the web service operation
addNumbers
is called onport
:The following is the full
Client.cs
class:using System; class Client { static void Main(String[] args) { AddNumbersImplClient port = null; try { port = new AddNumbersImplClient("AddNumbersImplPort"); int number1 = 10; int number2 = 20; Console.Write("Adding {0} and {1}. ", number1, number2); int result = port.addNumbers (number1, number2); Console.WriteLine("Result is {0}.\n\n",result); number1 = -10; Console.Write("Adding {0} and {1}. ", number1, number2); result = port.addNumbers (number1, number2); Console.WriteLine("Result is {0}.\n\n",result); port.Close(); } catch (System.ServiceModel.FaultException e) { Console.WriteLine("Exception: " + e.Message); if (port != null) port.Close(); } } }Building and Running the Client
The example bundle contains all the files you need to build and run a WCF client that accesses a WSIT web service written in the Java programming language.
The
csclient-enabled-fromjava.zip
bundle contains the following files:Generating the Proxy Class and Configuration File
When creating a Java programming language client, you use the
wsimport
tool to generate the proxy and helper classes used by the client class to access the web service. When creating a WCF client, thesvcutil.exe
tool provides the same functionality as thewsimport
tool.svcutil.exe
generates the C# proxy class and contracts for accessing the service from a C# client program.The example bundle contains a batch file,
build.bat
, that callssvcutil.exe
to generate the proxy class. The command is:Building the AddNumbers Client
The example bundle's
build.bat
file first generates the proxy class and configuration file for the client, then compiles the proxy class, configuration file, andClient.cs
client class into theClient.exe
executable file.To run build.bat, do the following:
- At a command prompt navigate the location where you extracted the example bundle.
- If necessary, customize the
build.bat
file as described in Customizing the build.bat File below.- Enter the following command:
build.bat
Customizing the build.bat File
To customize the build.bat file for your environment, do the following:
- Open
build.bat
in a text editor.- On the first line enter the full path to the
svcutil.exe
tool. By default, it is installed atC:\Program Files\Microsoft SDKs\Windows\v6.0\Bin
.- On the first line change the WSDL location URL if you did not deploy the
addnumbers
service to the local machine, or if the service was deployed to a different port than the default 8080 port number. For example, the following line sets the host name totestmachine.example.com
and the port number to 8081:
svcutil /config:Client.exe.config
http://testmachine.example.com:8081/wsit-enabled-fromjava/addnumbers?wsdl- On line 2, change the location of the
csc.exe
C# compiler and theSystem.ServiceModel
andSystem.Runtime.Serialization
support DLLs if you installed the .NET 2.0 and 3.0 frameworks to non-default locations.Running the AddNumbers Client
After the client has been built, run the client by following these steps: