C# – Can a .Net 2.0 winforms client app connect to a Windows Server .Net 3.5 WCF service? – architectural advice needed

.net-2.0.net-3.5coraclewcf

In the bank I work all client workstations have .Net 2 installed it is outside my control to influence or get a newer version of the framework installed at the client end. On the server end I have more control and can write a .Net 3.5 WCF service if I choose.

I've an existing fat client that I'd like to refactor and shift it's data access code (Oracle Odp.net) to the server behind a service (to remove the client workstation dependency on the Oralce 10g client).

My question is if I put this data layer behind a WCF service can I access this from a .Net 2.0 GUI app on the client? or does the client workstation also need .net 3.0/3.5?

I've not used WCF much other than a few prototype apps on my dev machine connecting to a Windows 2003 Server which has .Net 3.5 SP1 so I am looking for advice.

Another consideration is that IIS is considered a red light technology (banned without dispensation) in this bank

Update

I have my WCF service running hosted in a Console App, I echo to the Console output when it receives and processes a call. On my Client .net 2 end I've chosen add Web Reference and make the call. But I get an error, even though I get the error the echo to console out is still generated on the Server end so it is being received just not return properly. The error is:

Exception: The underlying connection was closed: An unexpected error occurred on a receive.

Inner Exception: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.

How to fix this?

Best Answer

If the WCF service exposes a basicHttpBinding endpoint, then .NET 2.0 (or any other code that uses SOAP) should be able to consume it with no problems.