I have implemented wcf service with duplex binding and it is working fine. What I have done at client side is I have configured ClientBaseAddress in config file. Default port i.e. 80 which I want my application to automatically use available port.
So my question, is there any way where I can automatically set the available free port?
I'm not totally clear on what you are asking but as indicated in this answer, you can set the port to '0' and this will cause WCF to pick the next available free port. However, this seems to be a random port and not necessarily port 80. It's unclear to me whether you specifically want port 80.
Using this method will cause a problem on your client. They will not know which port to talk over. There is a feature in WCF called WCF Discovery in which a client 'discovers' the location of the service over a network.