SessionId在从Web服务调用方法时发生更改

本文关键字:方法 在从 Web 服务 调用 SessionId | 更新日期: 2023-09-27 18:21:47

我有两个项目。其中一个具有WebService(asmx),第二个使用WebService作为引用。

这是WebMethod:

[WebMethod(EnableSession = true)]
public int GetDocCount(CompressedData data)
{
    if (Session[Settings.cStrSessionUserLogin] == null)
    {
        return 0;   
    }
    string xmlString = EncoderUtil.Decompress(data);
    SortFilterSet sfs = (SortFilterSet)XmlUtil.Deserialize(typeof(SortFilterSet), xmlString);
    Session[Settings.cStrSessionSortFilterSet] = sfs;
    Session[Settings.cStrSessionOrderCodeList] = null;      
    return Database.GetOrderCount((List<RequestorInfo>)Session[Settings.cStrSessionRequestorList], sfs.FilterSet, sfs.SearchPattern);
}

当我创建客户端时,我有一个sessionid,但每当我调用WebMethod时,我都会在WebMethod中看到sessionid的变化(我可以通过Debug看到这一点)

MyWebServiceSoapClient client = new MyWebServiceSoapClient();
int countDocs = client.GetDocCount(data);

为什么我在WebMethod中看到一个新的SessionId,如何避免这种情况并获得原始SessionId?

编辑:WebMethod会话内部。计数始终为0

SessionId在从Web服务调用方法时发生更改

我删除了WebService引用,然后在我的项目中插入了MyWebServiceSoapClient.asmx和MyServiceSoapClient.cs。现在我再也没有新的SesseionId了。