473,398 Members | 2,404 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,398 software developers and data experts.

Upgrading DLLs without any down-time

My head is starting to hurt this afternoon so I'd love any tips anyone can
offer. :-)

I'm currently going with the concept of putting all my DLLs in the bin/
directory inside my web application's root directory. This is working fine.

However, when I want to upgrade one of the DLLs (all of which are
strong-named and have unique version numbers that change each build), I have
to perform two steps:

1. Copy the new DLL into the bin/ directory, overwriting the existing DLL

2. Update the web.config file to implement the bindingRedirect option for
the new DLL version

Between the first and the second steps taking place, my application fails
(because it can't find the version of the upgraded DLL that it is expecting
things to bind to). This may only take a couple of seconds, but with the
thousands of hits we are getting on our web site this will most likely cause
at least one or two users to receive an error message.

Is there an obvious solution to this that I'm missing?

--

(O)enone
Nov 19 '05 #1
4 1566

"Oenone" <oe****@nowhere.com> wrote in message
news:ui**************@tk2msftngp13.phx.gbl...
My head is starting to hurt this afternoon so I'd love any tips anyone can
offer. :-)

I'm currently going with the concept of putting all my DLLs in the bin/
directory inside my web application's root directory. This is working
fine.

However, when I want to upgrade one of the DLLs (all of which are
strong-named and have unique version numbers that change each build), I
have to perform two steps:

1. Copy the new DLL into the bin/ directory, overwriting the existing DLL

2. Update the web.config file to implement the bindingRedirect option for
the new DLL version

Between the first and the second steps taking place, my application fails
(because it can't find the version of the upgraded DLL that it is
expecting things to bind to). This may only take a couple of seconds, but
with the thousands of hits we are getting on our web site this will most
likely cause at least one or two users to receive an error message.

Is there an obvious solution to this that I'm missing?

--

(O)enone


What we do to prevent downtime is to have two different Virtual Directories
pointing to two separate folders. One is a "test" directory, the other is
the "live" directory. When it is time to deploy, deploy into the test
directory, then test it. If all is well, modify the Virtual Directory's
location (in IIS) of the live directory and point it to the test directory,
then point the test Virtual Directory to the old live directory.

No down time :) (not even for a first-time run-time compilation).

HTH,
Mythran

Nov 19 '05 #2
One, simple solution, is to copy the project to a local directory, then
modify the web.config, then copy all to the target server using file
explorer. It will 'bounce' any users on the application and send them
back to the default page because the dotnet framework detects the new
dlls and restarts the application. No real 'downtime' but users could
lose session information when it restarts.

HTH

Nov 19 '05 #3
One, simple solution, is to copy the project to a local directory, then
modify the web.config, then copy all to the target server using file
explorer. It will 'bounce' any users on the application and send them
back to the default page because the dotnet framework detects the new
dlls and restarts the application. No real 'downtime' but users could
lose session information when it restarts.

HTH

Nov 19 '05 #4
you have two options.

1) rename all the dll's in the next release, but can still run into timing
troubles with the pages.
2) upload all the pages to a new dir (say with the build number in the
name), after all pages/dll are copied, change the vdir to point to the new
dir.
-- bruce (sqlwork.com)


"Oenone" <oe****@nowhere.com> wrote in message
news:ui**************@tk2msftngp13.phx.gbl...
My head is starting to hurt this afternoon so I'd love any tips anyone can
offer. :-)

I'm currently going with the concept of putting all my DLLs in the bin/
directory inside my web application's root directory. This is working
fine.

However, when I want to upgrade one of the DLLs (all of which are
strong-named and have unique version numbers that change each build), I
have to perform two steps:

1. Copy the new DLL into the bin/ directory, overwriting the existing DLL

2. Update the web.config file to implement the bindingRedirect option for
the new DLL version

Between the first and the second steps taking place, my application fails
(because it can't find the version of the upgraded DLL that it is
expecting things to bind to). This may only take a couple of seconds, but
with the thousands of hits we are getting on our web site this will most
likely cause at least one or two users to receive an error message.

Is there an obvious solution to this that I'm missing?

--

(O)enone

Nov 19 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: Ned Hart | last post by:
I'm formatting my mirrored drives and installing a third drive for raid 5 to add more space. I have backup exec. Can anyone tell me the best way to backup SQL so I can be sure it will restore...
2
by: Shiraz | last post by:
Hi I just made an installer for an application that uses two external COM dlls. On the surface, everything seems to be running smoothly and the the application runs without any errors. However,...
3
by: SherryM | last post by:
I have an ATL COM object compiled with VC 6.0 that needs to be compiled in Visual Studio .Net 2003. So, I going from the 6.0 compiler to the 7.1 compiler. I got the project converted, compiled...
7
by: Oenone | last post by:
I'm sure there's an obvious way to do this, but I'm missing it so far. I have an ASP.NET application that relies on several DLLs to work. Currently in order to get my site working I have to put...
3
by: Benny Raymond | last post by:
I have my auto update and auto update/ download new plugins system working. The only thing I'm missing now is the ability to "uninstall" plugins that are currently installed. Currently I'm...
15
by: Asaf | last post by:
Hi, I have received a source code project written in C++ VS.NET 2003 on .NET 1.1 that compiles without a problem. I have opened this source code in VS.NET 2005 and the Log wizard says that...
7
by: Jeff Lynn | last post by:
Help! I recently upgraded my VS V6 to VS 2005 and was unable to build projects that were perfectly ok under VS V6. Where VS 2005 fails was in the linker resolving external DLLs, which are Open...
2
by: =?Utf-8?B?c2hpdmE=?= | last post by:
Hi, I have some VC++ COM DLLs and want to reuse the same DLLs in C#.net application with Add Reference but I have a requirement for my application that therre should not be any DLLs for...
3
by: =?Utf-8?B?a3lvbmc=?= | last post by:
Quick question. Say I have a project against the 2.0framework. I also have a dll compiled against 3.5. If I reference the 3.5 dll in the 2.0 project, how would that work? So I'm thinking that...
6
by: =?Utf-8?B?anAybXNmdA==?= | last post by:
Using Visual Studio 2005, I have created 4 small DLLs that our company projects can use to access common tools included in each of the separate DLL files. Our Visual Studio 2005 applications...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.