We've had to come up with a solution at work to do day-time releases of our intranet application whilst maintaining 100% uptime. This is because we do builds during the day with high-priority bug fixes that have to go out on the same day.
An option suggested to me was using network load balancing with two sites on the same server, which is really a great solution for our needs (we can't afford another server with the same hardware, they're £5k+ for our setup).
So I've taken a look at this article where it states the following:
For session state to be maintained across different web servers in the web farm, the application path of the website (for example. \LM\W3SVC\2) in the IIS metabase should be identical in all the webservers in the web farm.
This is a problem as the application paths will have to be different if the same website is NLB'd on the same server. We need to maintain session state across the two sites (as opposed to web servers) otherwise we'll be flooded with calls from angry users.
So can we set up two sites, on one server that uses NLB and can maintain all state? The sites are identical by the way, just one will be more of a recent build for bugfixes.
EDIT (SOLVED)
So following this I had a hunt around to find this article. It describes issues around the use of the SQLServer
option in sessionState
in your web.config. It works just fine, except for one thing; session data is not being stored anymore, which breaks all security for us. In Session_Start
of my Global.asax file I have some DB-calling code which sets session data which is used throughout the intranet site for quick access to user details.
<sessionState mode="SQLServer" sqlConnectionString="Data Source=localhost;Integrated Security=True" />
Is it because of the DB-access issues or because of the sessionState
?
EDIT EDIT
Okay, I figured I hadn't restarted the web service after playing around with the authentication which caused it to break. So the last thing I need to know how to do is switch between the websites whilst whilst pointing at the same location. So say we had a URL of http://mycompanyintranet/ that pointed to the "CompanyIntranet1" and we also had a site of "CompanyIntranet2" in IIS, how would we get http://mycompanyintranet/ to point to "CompanyIntranet2"?