BuzzAnn,
Microsoft's documentation on this topic indicates that setting the page-level session state mode to "ReadOnly" should protect you from simultaneously trying to write session state information (they will be queued and processed sequentially), but multiple readers are allowed. See Section "Synchronizing access to session state":
http://msdn.microsoft.com/en-us/library/aa479041.aspx
If the EnableSessionState property of the page is set to "ReadOnly", each page request attempts to obtain a lock on reading status information. In the standard ReaderWriterLock semantics, any number of readers can have simultaneous access to protected information. Any request that reaches a write lock (for example, through EnableSessionState set to true) locks the record and reads session state information until the request containing the write lock completes.
As long as all you are trying to do is read the session state information from your pages, while their EnableSessionState is set to "ReadOnly", all read requests will continue without blocking. However, if you are trying to write, the documentation is not clear what really will happen. Assuming that ReaderWriterLock is all that is used to synchronize access, I assume that you will not be protected from overwriting, race conditions, and other unsynchronized access problems.
If you try to write to the session state, be sure to set EnableSessionState to "true" to ensure that the write lock is reached and synchronization occurs as necessary.
Hope this helps!
source share