我有一个非常简单的服务:
[ServiceContract]    
public interface IPncService
{
    [System.ServiceModel.Web.WebGet(UriTemplate = "set/{val}")]
    [OperationContract]
    bool SetVariable(string val);
    [System.ServiceModel.Web.WebGet(UriTemplate = "get")]
    [OperationContract]
    string GetVariableVal();
}
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
public class PncService : IPncService
{
    string someVariable;
    public bool SetVariable(string val)
    {
        if (string.IsNullOrWhiteSpace(val))
            return false;
        else
        {
            someVariable = val;
            return true;
        }            
    }
    public string GetVariableVal() {
        return someVariable;
    }
}
为什么变量someVariable在每个会话中不保留其值?
换句话说,如果我这样做:

然后转到:

为什么是 的值someVariable = null?这是一个不同的会话吗?我在调用 set 方法后立即在同一个浏览器上调用该方法......