Hej! Utan att svära på hur det fungerar då jag inte vet riktigt tror jag att det skapas ett nytt objekt per tråd som kör i IIS. Varje tråd tar hand om en, och enbart en, förfrågan åt gången. Därmed borde det inte vara problem med threadsafe, men om alla eventuella trådar i IIS måste komma åt data lagrad i objektet måste man nog spara det i en Application variabel. Static blir en instans för hela ASP.NET-applikationen.  Hehe tackar för det, för att se till så att varje avändare endast har ett objekt av en klass bör man kanske kunna göra på följande vis(e testat)?: Nix, det fungerar inte. En statisk metod kan inte accessa en ej statisk medlemsvariabel utan att först skapa en instans av objektet.Singelton?
    
    
Hur fungerar igentligen ett singelton objekt i en webapplikation? Säg att vi har en klass enligt följande:
    public class BusinessLogicalLayer
    {
        private static BusinessLogicalLayer instance;
        public static BusinessLogicalLayer GetBusinessLogicalLayerInstance()
        {
            if (instance == null)
                instance = new BusinessLogicalLayer();
            return instance;
        }
    }
För att få en instans av klassen används GetBusinessLogicalLayerInstance. Frågan är nu om alla användare kommer jobba mot ett o samma objekt eller kommer det istället vara så att varje avändare får vars ett(1) objekt?
Mitt antagande är att alla kommer jobba mot samma objekt vilket kan skapa tråd problem(threadsafe) . Kanske man bör ta bort static från private static BusinessLogicalLayer instance;? då borde det väll bli ett objekt per användare? 
    Sv: Singelton?
    
    
Som sagt, ska inte svära på detta men det är vad jag tror. Någon annan som vet bättre?Sv:Singelton?
    
    
Dvs, alla användare skulle ha använt en och samma variabel. 
Inte så bra i det här fallet. 
I princip säger du EnableMultiThreading=False  :) 
Och det värsta av allt är att du märker antagligen prestandaförbättringar i utv.miljön, 
men det kommer att sluta i katastrof vid 5-10 samtidiga användare.Sv: Singelton?
    
    
    public class BusinessLogicalLayer
    {
        private BusinessLogicalLayer instance;
        public static BusinessLogicalLayer GetBusinessLogicalLayerInstance()
        {
            if (instance == null)
                instance = new BusinessLogicalLayer();
            return instance;
        }
    }
Man tar helt enkelt bort static framför själva BusinessLogicalLayer objektet. Kan man ändå ha en statisk funktion som sätter en medlem som inte är statisk?
    Sv:Singelton?
    
    
Kika annars på threadstatic, se http://msdn2.microsoft.com/en-us/library/system.threadstaticattribute(vs.80).aspx. Sätt det framför din instance-variabel så löser du i alla fall trådsäkerheten. Dock så kommer det att skapas en ny instans för varje tråd som körs och då är det ju inte längre en "riktig" singleton.
/Andreas