wrote in news:75d2ee1a-273e-4c90-97fd-97df107cbde6
@g23g2000vbr.googlegroups.com:
> SNIPPED
Rather than type a lot of answers, here is the general rules summarized.
The quickest way to update an app on a single server, with minimal
downtime is as follows:
1. Ensure state is off the server (SQL Server or external state server).
All user session information is then stored outside of the app, when it
resets. I have not played extensively with workflow on a web server, but
since the basic web mechanism is session cache on server side (along
with other caching) and session cookie, along with viewstate, on the
client side, as long as you have session on another server and are
careful about caching in app (or set up persitance when the app goes
down), there is little danger of impacting users.
2. The least impact is to copy the bits to the server in another
directory, test and then deploy by copying to production. I like to use
a staging directory that I can actually run for a last minute sanity
check. You then copy all but the configs over.
NOTE: There is some risk with this method
If you add some safety, by adding a deployment package, you add time,
which means you can impact some users. It is safer, as you are less
likely to overwrite a production config file, but the deploy adds time.
Now, for framework deployment. I am assuming this is refactoring type
work, or at minimum, not changing the interface to the UI layer (as you
would have to deploy the web application for this).
There are a couple of ways to handle this with minimal downtime.
One is to simply xcopy the assemlbies. As long as the interface has not
changed and you have not specified a particular version, the downtime is
the amount of time to copy over. One caveat here is you might have the
assemblies locked, which means a short recycle of IIS. This is unlikely
in most small apps, but there is a risk here.
Another way is to deploy these assemblies to the GAC. If you go this
route, set up the config with assembly versions. You then deploy the new
assemblies to the GAC on the server and update the config to point to
the new assemblies. You can still test in a staging app root by updating
it first. This is likely to be less dangerous, but there is a cost here:
all of your assemblies MUST be strongly typed.
The GAC can be a pain to work with, but you take the pain for the added
safety.
Hope this helps!
--
Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA
Twitter: @gbworld
Blog:
http://gregorybeamer.spaces.live.com
*******************************************
| Think outside the box! |
*******************************************