Frage

Ich habe Probleme in WCF-Dienst Konfiguration im Sitzungsmodus ausgeführt werden. Als Test habe ich diesen einfachen Dienst:

[ServiceContract]
public interface IService1
{
    [OperationContract]
    string AddData(int value);
}

[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]
internal class Service1 : IService1,IDisposable
{
    private int acc;

    public Service1()
    {
        acc = 0;
    }

    public string AddData(int value)
    {
        acc += value;
        return string.Format("Accumulator value: {0}", acc);
    }

    #region IDisposable Members

    public void Dispose()
    {           
    }

    #endregion
}

Ich bin mit Net.TCP mit Standardkonfiguration mit zuverlässiger Sitzung Flag Bindung aktiviert. Soweit ich verstehe, wie zum Dienst sollte ohne Probleme im Sitzungsmodus ausgeführt werden. Aber der Dienst läuft, wie in pro Anrufmodus - jedes Mal, wenn ich AddData nennen, wird Konstruktor aufgerufen, bevor AddData und Entsorgen Ausführung () nach dem Aufruf aufgerufen. Irgendwelche Ideen, warum dies passiert sein könnte? Vielleicht etwas, was ich bin fehlt?

Anmerkung:. Ich weiß nicht, ob es verwandt ist, aber ich bin mit VS2008 dies auszuführen

Update: Ich habe hier dass wcftestclient nicht der Fall ist halte Sitzung mit den Kunden - vielleicht war es mein Problem. Tatsächlich war das Problem. Anschließen an den Service von der einfachen Konsole Client bestätigt, dass der Dienst funktioniert wie es sollte.

War es hilfreich?

Lösung

Versuchen Sie, eine Session erfordert, wenn die Servicecontract definieren:

[ServiceContract(SessionMode = SessionMode.Required)]
public interface IService1
{
  [OperationContract]
  string AddData(int value);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top