Laden...

Statische Variable im Webservice

Erstellt von Lynix vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.629 Views
L
Lynix Themenstarter:in
667 Beiträge seit 2004
vor 17 Jahren
Statische Variable im Webservice

Hallo zusammen, ich hab hier ein kleines Problem mit einer statischen Variable in meinem Webservice.

Ich lege die im Webservice wie folgt an :


public class Webservice1
{
    private static MeineKlasse mMeineVariable = new MeineKlasse();

    public Webservice1()
    {
    }

    //...

    [WebMethod]
    public void MeineMethode()
    {
       //Mach was mit mMeineVariable...
    }
}

Wenn ich nun über eine Desktop-Anwendung "MeineMethode" aufrufe, kriege ich eine NullReferenceException. Wenn ich die Stelle, an der ich mMeineVariable innerhalb von MeineMethode aufrufe auskommentiere, läuft die Methode normal durch...

Daher nun meine Frage : Wo und wie muss ich die statische Variable initialisieren, damit ihr Zustand für alle Clients identisch ist ?

Ich habs auch schon testweise im Webservice1-Konstruktor versucht, leider mit demselben Ergebnis...

Ich versuche gerade, mich in Webservices ein wenig rein zu arbeiten, wäre daher für jede Hilfe dankbar.

"It is not wise to be wise" - Sun Tzu

L
Lynix Themenstarter:in
667 Beiträge seit 2004
vor 17 Jahren

Hat sich erledigt, der Fehler lag woanders. Thread kann gelöscht werden...

"It is not wise to be wise" - Sun Tzu

L
Lynix Themenstarter:in
667 Beiträge seit 2004
vor 17 Jahren

Trotzdem noch eine kleine Frage hinterher :

Wie lange bleibt eine statische Variable existent ? Bzw. wie lange lebt die Webservice-Instanz ?

Gibt es eine Möglichkeit die ewig leben zu lassen ?

"It is not wise to be wise" - Sun Tzu

3.170 Beiträge seit 2006
vor 17 Jahren

Hallo,
die statische Variable lebt so lange wie der Prozess in dem sie lebt.
Das ist bei WebServices unter IIS der ASP.NET-Workerprozess, und der wird normalerweise nicht beendet, bis der IIS beendet wird.
Andere Webserver, z.B. Cassini, halten die statischen Variablen in ihrem eigenen Prozess, also auch solange der Dienst läuft.

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

L
Lynix Themenstarter:in
667 Beiträge seit 2004
vor 17 Jahren

Alles klar, vielen Dank !

"It is not wise to be wise" - Sun Tzu