views:

142

answers:

3

I have a client server application in which the communication between the client and the server is by WCF. My WCF services are supposed to be consumed only by my clients. ie, I am not bother about the service interoperability. The service might not be in same network as with my client application. And It would be hosted the service in IIS6.0

1) How big is the performance benefit if I use binary serialization for WCF encoding over HttpBinding(I know that the message would be more compact and hence less network traffic and process less bytes) 2) Is the binary encoder would be able to cross the network/firewall? ( I think it would be, because it still over Http)
3) Can I use TCP or netTcp bindings and still be hosted in IIS6.0? or what is the constrain?
4) What would be the best suited binding for my specific scenario?

Well, I am using .net framework 3.5 SP1

Please guide me

Thanks and regards

+1  A: 

(3) No you cannot host WCF services with TCP bindings in IIS 6.0

Jason Punyon
+1  A: 
  1. I did some experimenting with this and for basic message exchanges the performance of binary encoding vs. xml encoding is negligible.
  2. Shouldn't be a problem unless your firewall is blocking certain content based on the body encoding of the HTTP message.
  3. No. You would need to host in IIS7/WAS or self-host using a Windows service.
  4. I would start with HTTP+XML. Changing the encoding to binary is very easy later on and has no impact on your service implementation. You would only do this if some performance testing showed it was necessary. As for using TCP/IP vs. HTTP, again there is some wire overhead to HTTP because of the headers, but again it's negligible. However, if you do some network monitoring and find that your payloads are larger than your network can tolerate, you can again switch to netTcpBinding without any real affect on your implementation. That is the beauty of WCF.
Drew Marsh
A: 

This might help link text

PrimeTSS