I would guess that IIS is faster at routing based on host header than ASP.NET is at routing based on URL. However, each web service has the overhead of having to have at least one worker process running in the web service's application pool unless you have multiple web services sharing the same application pool. The one benefit of having more web services is that you can be more granular when shutting down individual web services for maintenance. The only thing is that if you shutdown a web service but it happens to be sharing an application pool with other web services, you won't be able to know which worker process (assuming you created a web garden of multiple worker process, which is advisable since you're sharing application pools across multiple web application) might still be running to handle the last request of the web service you just shutdown if the reason that you shutdown the web service is because of a hang in the worker process.
In conclusion, it's 6 of one, half a dozen of the other. ![]()