In his book "Programming WCF Services", Juval Lowry expresses concerns about using Singleton Services because of the performance implications.
In one of my projects I'm using a stateless singleton WCF Service declared like this:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
ConcurrencyMode = ConcurrencyMode.Multiple)]
public class FooService : IFoo
{
}
The service is accessed from multiple Silverlight clients over httpsTransport. I've opted for a singleton because I see no need to burden the system the GC overhead when it is not really needed. Am I missing something or shouldn't this be the most efficient way to implement a stateless service that's equally fast if not faster than a PerCall instantiated service?