I'm developing a website which attempts to utilize the SOA pattern. The services service both the main web app as well as an HTML5 mobile app and native iPhone and Android apps through the use of a facade service to provide a simplified API.

The web app uses the Castle WCF Facility to connect to the services using basicHttpBinding.

I am finding performance slow. Especially if the site hasn't been hit for over half an hour. To remedy this I have changed the app pool recycling strategy to recycle after the app pool hits x% of the servers RAM. 

My question is - what is the best way to host services in a setup like this? What is the best binding to use? Should I consider moving the services out of IIS altogether? I understand net.tcp is the fastest binding to use - would it be best to host the services as windows services using that?

Cheers

w://