开发者

trouble configuring WCF to use session

I am having trouble in configuring WCF service to run in session mode. As a test I wrote this simple service :

[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
}

I am using Net.TCP binding with default configuration with reliable session flag enabled. As far as I understand , such service should run with no problems in session mode. But , the service runs as in per call mode - each time I call AddData , constructor gets called before executing AddData and Dispose() is called after the call. Any ideas why this might be happening? Perhaps I am missing something?

note : I do not know if it is related , but I am using VS2008 to run this.

Update: I've noticed here that wcftestclient does not maintain session with clients - maybe it was my problem. Indeed t开发者_JAVA百科hat was the problem. Connecting to the service from simple console client confirmed that the service works as it should.


Try requiring a SessionMode when defining the ServiceContract:

[ServiceContract(SessionMode = SessionMode.Required)]
public interface IService1
{
  [OperationContract]
  string AddData(int value);
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜