Das Singleton Pattern gehört sicherlich zu den meist verwendeten Patterns. Leider kommt es aber doch noch öfters vor, dass diese für verteilte Anwendungen und Web Applikationen falsch implementiert werden. 

public sealed class Singleton
{
    static Singleton instance = null;

    Singleton()
    {
    }

    public static Singleton Instance
    {
        get
        {
            if (instance == null)
            {
                instance = new Singleton();
            }
            return instance;
        }
    }
}

Wie es richtig gehört kann man auf der Microsoft Website finden. Ebenfalls eine tolle Erklärung und passende Alternativimplementierungen ohne locks kann man hier finden.