I'm currently writing a webapp in MVC where I need to have a Request ID number for each submission that users send in. I originally wrote the class using a Singleton pattern which would contain "private static List<Request>" and then public accessor methods allow the list to be manipulated, updated, etc. -- So when hitting a new request page, the user would be assigned a new unique request ID and this would ID would be stored in the List<Request> of the Singleton with status, etc. and stay with them until they close the window or complete the request. So it would be a unique request number, but also give me a unique way of controlling the session and preventing double submissions or re-submissions of the same request.
I thought that this was brilliant until it was explained to me on StackOverflow that each page request is started in its own process and runs to completion and then the process dies, and the singleton with it. So with each new page request starts a new process with no knowledge of the previous singleton that was in memory.
The smart solution would be to store this in a DB, but unfortunately, I have none immediately available to me at the moment, so I'm storing the very last Request ID number in web.config. It's a hack, I realize...
So because of the way MVC works, it seems that Singleton and Static Clas
View Complete Post