G
Guest
All
Architecture:
An aspnet website serves as the interface for several scalable
applications.
Problem:
The ability to put the website into maintenance mode is required. The
maintenance mode needs to be selective - conditional on origination IP
address to allow internal personnel to view the site during a
deployment operation, and either the whole site or certain sections
may need to be selectively put into maintenance. Also, we want to
minimise the risk of killing a user's session while they are in the
middle of a workflow operation.
Thoughts:
I note that people use HttpModules for this sort of thing, and this
looks fairly straightforward. In order to accommodate the last part of
the problem above, I suppose a change to the config for the HttpModule
could redirect any user without an existing session to a maintenance
page. When there are no more sessions open, it is safe to deploy.
However, this means that we need to keep track of user sessions. Since
there appears to be no reliable way to do this automatically (please
correct me if I'm wrong), this means that we would need to store
session IDs and last request time. We can then use a comparison with
the session timeout value to clean up expired sessions. All of this
seems *relatively* straightforward (again, please correct me if I'm
wrong), but what concerns me is the storing of this data. If we store
it in a database, this means a database connection for every request.
If we store it in memory, it feels as if it won't be scalable as the
traffic increases.
Questions:
Does this make sense? Do we think that what I want to do is
achievable? Is there anything out there that does what I want before I
start rolling my own? Any other thoughts or observations would be most
welcome.
Many thanks!
Architecture:
An aspnet website serves as the interface for several scalable
applications.
Problem:
The ability to put the website into maintenance mode is required. The
maintenance mode needs to be selective - conditional on origination IP
address to allow internal personnel to view the site during a
deployment operation, and either the whole site or certain sections
may need to be selectively put into maintenance. Also, we want to
minimise the risk of killing a user's session while they are in the
middle of a workflow operation.
Thoughts:
I note that people use HttpModules for this sort of thing, and this
looks fairly straightforward. In order to accommodate the last part of
the problem above, I suppose a change to the config for the HttpModule
could redirect any user without an existing session to a maintenance
page. When there are no more sessions open, it is safe to deploy.
However, this means that we need to keep track of user sessions. Since
there appears to be no reliable way to do this automatically (please
correct me if I'm wrong), this means that we would need to store
session IDs and last request time. We can then use a comparison with
the session timeout value to clean up expired sessions. All of this
seems *relatively* straightforward (again, please correct me if I'm
wrong), but what concerns me is the storing of this data. If we store
it in a database, this means a database connection for every request.
If we store it in memory, it feels as if it won't be scalable as the
traffic increases.
Questions:
Does this make sense? Do we think that what I want to do is
achievable? Is there anything out there that does what I want before I
start rolling my own? Any other thoughts or observations would be most
welcome.
Many thanks!