开发者

Why is my SessionIDManager child class not being asked to CreateSessionID?

I have implemented a web app using session state management as per the instructions found on:

http://blog.maartenballiauw.be/post/2008/01/ASPNET-Session-State-Partitioning-using-State-Server-Load-Balancing.aspx

http://en.aspnet-bhs.info/post/State-Server-Partitioning.aspx

My SessionIDManager inheritor includes the code:

public class SessionIdManager : System.Web.SessionState.SessionIDManager
{
    public override string CreateSessionID(System.Web.HttpContext context)
{...}

My web.config includes the code:

<machineKey
          validationKey="1234567890123456789012345678901234567890AAAAAAAAAA"
          decryptionKey="123456789012345678901234567890123456789012345678"
          validation="SHA1"
          decryption="Auto"
        />
...
<sessionState
            mode="StateServer"
            partitionResolverType="PartitionResolver"
            sessionIDManagerType="SessionIdManager"
            cookieless="false"
            ti开发者_高级运维meout="20"
            />

But the CreateSessionID method never gets called and so the session IDs do not get amended with the appropriate server ID.

Can someone tell me what is going on or what I might also need to consider that isn't mentioned in the articles?

I am using .NET2 with VS2k5.

Thanks,

Matt.


I have added a check in the Validate(string id) method the length of the session ID string. It now has: return id.Length != 24; This seems to work.


In the Validate(string id) function, you should always return true if you don't want the ASP framework to create a new session.

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜