We have a Web Role which used to run in a single instance for some time. To cope with higher loads (and to get a better SLA) we're currently migrating the role to support multiple instances.
The role uses Forms Authentication (with a custom membership provider), and our understanding was that we would have to enable some sort of shared session state between the instances, so if a user signs in on instance 1 and gets his .ASPXAUTH
cookie, then instance 2 knows about this cookie.
We did that, and currently the role is running on two instances, and everything works well. We tested that a user stays signed in, even if his request is processed on the other instance than the one on which he signed in. If the user doesn't sign in, access is denied.
We also checked whether the TableStorageSessionStateProvider
created a table in the Azure Table Storage account, and indeed, there is a table Sessions
with PartitionKey
, RowKey
and Timestamp
columns.
But, to our astonishment, the Sessions
table always stays empty. No matter how many users are signed in, there is no data in the table.
How can these instances communicate, if not through the Sessions
table?