I am still learning the whole WCF thing, so please bear with me here.
What I have is two self hosted services created using C# and VS 2008:
Service # 1 Adds two numbers and returns the result.
Service # 2 Returns the square of a number.
I want the client to be able to send in two numbers to Service 1, get the sum and then send the sum in to Service 2 and get the square.
I have two generated proxies for both the services, and I am able to use Intellisense on them, so that part supposedly works.
Now how do i configure my app.config file such that I can communicate with both the services? Right now, i get an exception every time I try to do that.
[The client works fine if I only have one of the configurations in the app file at a time, and try to call only that server.]
I suppose this is a very noobish question, and the answer probably is "structure the config file in _____ manner", but Google simply does not seem to have an example/guide.
Anyone know how to do this?
Note: Consume multiple WCF services from one client client Though sounds like a duplicate is NOT what I am looking for.
Edit: Thanks to marc_s, I got it working
With both the services running in different apps, I did not need to split the server config file, but here is what I did with the client config files: First auto-generated the config files using SvrUtil.exe and then merged them in this way:
<bindings>
<wsHttpBinding>
<binding>
...
</binding>
<binding>
...
</binding>
</wsHttpBinding>
</bindings>
...
<endpoint>
...
If you want to run the two services on separate endpoints / ports, do something like this:
Server-side:
<service name="Service1">
<endpoint address="http://localhost:8001/service1.asmx"
binding="basicHttpBinding"
contract="IService1" />
</service>
<service name="Service2">
<endpoint address="http://localhost:8002/service2.asmx"
binding="basicHttpBinding"
contract="IService2" />
</service>
Client-side:
<client>
<endpoint address="http://localhost:8001/service1.asmx"
binding="basicHttpBinding"
contract="IService1"
name="Service1" />
<endpoint address="http://localhost:8002/service2.asmx"
binding="basicHttpBinding"
contract="IService2"
name="Service2" />
</client>
That should give you two separate, individual endpoints on the server and a client that will talk to both.
Marc