moinkhan
Level 5

Error creating AppPool

I am using InstallShield 2008 and a project in Basic MSI, I recently upgrade our product from IS12 to IS2008, we are using the IS2008 IIS functionality to create Virtual Directory and Application Pools, now we are getting following error in log file when we run our installation and after that installation got roll back.
I have tried copying the IISHelper.dll file attached by David in the http://community.macrovision.com/showthread.php?p=397290#post397290 but the issue is still the same, sometime it worked and sometime it gives the error and rollback the installation.

Action 12:19:12: Progress Custom Action. Creating application pool MyPool
1: CreateAppPoolFunction
1: OpenKeyLog, pszMDPath =/LM
1: AddKey, pszMDPath = /W3SVC/AppPools/MyPool
1: OpenKeyLog, pszMDPath =/LM/W3SVC/AppPools/MyPool
1: Error: OpenKey failed for /LM/W3SVC/AppPools/MyPool. HRESULT = HRESULT_FROM_WIN32(ERROR_PATH_BUSY)
1: Error adding apppool key.
1: Error with IISRT: -2147024748
Action ended 12:19:12: InstallFinalize. Return value 3
Labels (1)
0 Kudos
2 Replies
cthulhi
Level 3

I have run in to this exact same problem, same error. IS12 and 2008 on IIS6, Windows 2003.

This can occur when creating application pools as well as virtual directories. This can occur in .NET 1.1.4322 and .NET 2.0.50727 applications. This can occur if IIS is running in high isolation mode. Basically, I don't think it has anything specifically to do with your installation per se, but more to do with IIS and IS trying to use the same resource at the same time and one of them is winning out... unfortunately it isn't the side you're working with.

This does occur some times and not others and I see it more often than not on our web servers which host more than 5 web sites. Typically these are test and acceptance environments; being shared resources, these servers have more on them than a production server would.

What I have found to be a 'work around' if you can call it that, is to reset IIS prior to running the install.


My guess, if I had to make one, is the underlying custom action is using ADSI to take care of the creation/destruction of these objects, but doesn't have a 'wait' mechanism if the path is busy.

If a QA person was recently on the site to be upgraded, then IIS has not released the application's resources yet, and the path is busy. By forcing an IIS reset, you are manually freeing up the resources and if the application does not load before you complete the install, it should go through.

I have not seen this occur on first time installations, only upgrades which makes sense as there are no locked resources to cause this error on a first time install.




While the work around is fine in test or acceptance environments, it is a drag when it comes to deploying to a production level environment where service interruption is not always acceptable.

If it happens on your application pools and not your virtual directories, you might be able to get away with just recycling the application pool(s) prior to installation and see if that works.

For us, it happens on everything from app pools to virtuals so an IIS reset is a sure-fire kill all...


It would be really really nice if IS could trace this down I'd be more than happy to share anything I know with them if contacted.
0 Kudos
DFranke
Level 3

Has anyone found a solution to this problem?

We have just recently run into the same issue with our installation packages (IS 2008, IIS 6, Windows 2003).

Pretty much all our problems are releated to the creation of the application pools.

IIS Resets have not had any success.
0 Kudos