How do I unload/replace dll without stopping server?

L

Larry Woods

I have a "homegrown" dll that I am using in IIS (VBScript). I need to
replace it on a production server, but I don't want to stop/restart server
in order to replace the dll.

Possible?


TIA,

Larry Woods
 
D

Dave

Larry said:
I have a "homegrown" dll that I am using in IIS (VBScript). I need to
replace it on a production server, but I don't want to stop/restart server
in order to replace the dll.

Possible?


TIA,

Larry Woods
No.
 
A

Aaron [SQL Server MVP]

but I don't want to stop/restart server in order to replace the dll.
Possible?

Nope, the DLL will remain in memory as long as the IIS services remain
running.
 
B

Bob Barrows [MVP]

Larry said:
I have a "homegrown" dll that I am using in IIS (VBScript). I need to
replace it on a production server, but I don't want to stop/restart
server in order to replace the dll.

Possible?


TIA,

Larry Woods
Usually no, it is not possible.

If you configure your application to run in isolated mode (High security),
you will sometimes be able to unload the application in order to unregister,
replace and register a dll. But this does not always work.

Bob Barrows
 
L

Larry Woods

Right. I have found that "unloading" the application does allow me to
replace the dll, but when I click the "unload"
button I get the "all applications in the application pool will be stopped"
(paraphrased). What is the definition of the "application pool". IOW, will
this stop OTHER applications running on the server?

TIA,

Larry Woods
 
B

Bob Barrows [MVP]

I'm not sure: I've never seen that message. You may want to ask on the iis
group if nobody here answers.

Bob Barrows
 
A

Aaron [SQL Server MVP]

"all applications in the application pool will be stopped" (paraphrased).

You might have better luck if, instead of paraphrasing, you actually tell us
the actual message you actually received. Then, we could search for the
error message and do a bit of research. With a paraphrase, we have no idea
what to look for.
 
D

Dave Anderson

Larry said:
Right. I have found that "unloading" the application does allow me to
replace the dll, but when I click the "unload"
button I get the "all applications in the application pool will be
stopped" (paraphrased). What is the definition of the "application
pool". IOW, will this stop OTHER applications running on the server?

So you're using Server 2003, right? In that case, you ought to be able to
cycle the application pool. With any luck, this application has been set up
with its own application pool, so cycling it does not require interruption
of the rest of your web apps.

-- Windows Server 2003 only --
• Open IIS Manager
• Navigate to your web application
• View its properties to determine the application pool it is running under
• Expand Application Pools
• Right-click on appropriate one and select [Recycle]



--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms. Please do not contact
me directly or ask me to contact you directly for assistance. If your
question is worth asking, it's worth posting.
 
D

Dave Anderson

I said:
So you're using Server 2003, right? In that case, you ought to be
able to cycle the application pool...

Ugh. I hate when people don't answer the question at hand. The answer is a
big "it depends". The good news is that you can usually make it a "no" even
as you isolate it for future use. If the app is in a shared application pool
(which it will be by default), you can simply create an application pool and
reassign that pool to the application you want to cycle.

So...in principle, you should be able to change that DLL without
interrupting the other apps. In principle, anyway.



--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms. Please do not contact
me directly or ask me to contact you directly for assistance. If your
question is worth asking, it's worth posting.
 
M

Michael D. Kersey

Larry said:
I have a "homegrown" dll that I am using in IIS (VBScript). I need to
replace it on a production server, but I don't want to stop/restart server
in order to replace the dll.
Possible?

from
http://www.google.com/groups?q=comp...ng=r&[email protected]&rnum=3

Handling component modification on production servers
=====================================================

Motivation:
A modified component is a *different piece of software* than the
original component. For that reason, it (both source and object code)
*should have a different name*. The name should include the version of
the component. This is useful primarily for assisting you in tracking
which version of a component is in production, but has other uses. So...

Method:
1. Every time you modify a component, *give it a new name*, preferably
one that indicates the version. e.g.,
myobject = Server.CreateObject( "myspritzer1.seltzer")
is supplanted by the new component
myobject = Server.CreateObject( "myspritzer2.seltzer")

Now since you don't want to modify all of your ASP CreateObject calls
each time you modify the component, instead do the following:

2. In all your ASP code, don't hard-code the object name as shown in 1.
above. Instead use a variable name, e.g.:
myobject = Server.CreateObject( strSeltzerObject )
This code need never change.

3. Define strSeltzerObject in an Include file used by all ASP pages that
reference the component:
Const strSeltzerObject = "myspritzer1.seltzer"

4. Register the new component. Now both components are available to ASP
pages, but only the old component is being used by production ASP code.

5. When you're ready to bring the new component into production, modify
the Include file entry to point to the new component:
strSeltzerObject = "myspritzer2.seltzer"
Once this change is complete, ASP pages will begin using the new
component.

If problems develop, you can quickly rollback to the old version by
modifying the Include file to point to the old component.

The old component remains locked by the server. Eventually the server
will have to be stopped and restarted, so you shouldn't have to wait
more than a day or two!-)) Once the server has been stopped and
restarted, you may delete the old component if you wish.

Good Luck,
Michael D. Kersey
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top