cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Bruno_Walter
Level 4

Installation hangs when creating virtual directories on Windows Server 2008

We tested out installer on Windows Server 2008 RC0 and it hangs. Based on the log it appears to occur while creating the virtual directories. I also created an installer which simply creates an application pool and virtual directory with the same result. Here is the log:

Action 14:53:22: Progress Custom Action. Creating IIS virtual directories...
Action 14:53:22: Progress Custom Action. Creating IIS virtual directory ePower
1: SetCommitPath for website '' and app ''
1: InstallShield project contains a website with name 'Default Web Site', site number '0', and port '80'. Checking if it exists...
1: GetAdminSection for section 'system.applicationHost/sites' and path 'MACHINE/WEBROOT/APPHOST' and commitpath 'MACHINE/WEBROOT/APPHOST'.
1: Exception caught while searching for site with this port number
1: Website does not exist. Additonal info: Site number '0', Port '80', sBasePath '/LM/W3SVC/', DisplayName 'Default Web Site'
1: GetAdminSection for section 'system.applicationHost/sites' and path 'MACHINE/WEBROOT/APPHOST' and commitpath 'MACHINE/WEBROOT/APPHOST'.


It's worth mentioning that the default website already exists and the same installation is successful on Windows Vista.
Labels (1)
0 Kudos
(32) Replies
Bruno_Walter
Level 4

Anyone care to comment? I'm guessing Windows Server 2008 is unsupported at this time?

Any idea when it will be supported and by which versions of InstallShield. I also realize it an RC and not RTM version but some reassurance that InstallShield is/will be testing and support Windows Server 2008 when (or shortly after) it is released.
0 Kudos
m_rudolph
Level 6

Maybe not related, but isn't the Default Web Site set to site #1?
0 Kudos
MAnstice
Level 2

We are experiencing the same issue where the installer hangs if creating an app pool and a virtual directory with a trial edition of InstallShield 2008 Professional.

Action 11:45:25: Progress Custom Action. Creating IIS virtual directories...
Action 11:45:25: Progress Custom Action. Creating IIS virtual directory VirtDir1
1: SetCommitPath for website '' and app ''
1: InstallShield project contains a website with name 'DisplayName1', site number '1', and port '80'. Checking if it exists...
1: GetAdminSection for section 'system.applicationHost/sites' and path 'MACHINE/WEBROOT/APPHOST' and commitpath 'MACHINE/WEBROOT/APPHOST'.
1: Exception caught while searching for site with this id number
1: Website does not exist. Additonal info: Site number '1', Port '80', sBasePath '/LM/W3SVC/', DisplayName 'DisplayName1'
1: GetAdminSection for section 'system.applicationHost/sites' and path 'MACHINE/WEBROOT/APPHOST' and commitpath 'MACHINE/WEBROOT/APPHOST'.

Note that this is targeting the Default Website with ID 1 which does exist. If we edit the project to not create an app pool, the virtual directory is created and the install succeeds.

We really need to know how things stand with regard to supporting 2008 Server RC0 as this will block our ability to upgrade from InstallShield 11 to InstallShield 2008. The same package installs sucessfully on Vista and XP SP2. However, with Vista a nested structure is created as reported in <>.

I've attached the InstallShield project file and the failed MSI log for reference.
0 Kudos
Bruno_Walter
Level 4

It seems in the final version of Windows Server 2008 it causes a rollback rather than a hang. In addition, Window Vista SP1 has the same rollback issue.

I have discovered the IIS backwards compatibility is installed, you can force InstallShield to use the IIS 6 and earlier runtime for configuration and in that case the install completes successfully.

There's a KB article on how to do this: Q113487

Basically, you create a property called IISPREFERLEGACYOBJECTS and set it's value to "1".
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

The rollback could be related to an issue we found in one of the IIS interface methods that is called during application pool creation (the method raises an access violation, possibly due to a bug in the interface).

We've also seen the hanging behavior internally, which appears to be caused by unexpected errors returned from IIS and how those errors were being handled.

I've attached an updated IIS custom action DLL that contains fixes for the issues that we've seen here. Please try testing your setups with the updated DLL and let me know what your results are. To use the updated DLL:
1. Make a backup copy of C:\Program Files\Macrovision\IS2008\Support\IISHelper.dll.
2. Extract the DLL from the attached zip file to C:\Program Files\Macrovision\IS2008\Support.
3. Rebuild your project.
0 Kudos
rdilipk
Level 5

The patched IISHelper.dll worked like a charm for me! I previously had issues on Vista SP1 with the installation rolling back whenever it got around to setting up virtual directories. That problems seems to have disappeared with the patched binary.

I am going to test it on Windows XP and plain vanilla Vista to see if there are any unintended consequences.

If I sail through this fix wouldn't have come a moment sooner!
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

Thanks for your feeback! Please let me know if you encounter any issues with the hotfix DLL.
0 Kudos
moinkhan
Level 5

joshstechnij wrote:
Thanks for your feeback! Please let me know if you encounter any issues with the hotfix DLL.


I have a quick question in this thread, I am new to MSI installation on Windows 2008 with IIS7, I use my existing MSI package which installed fine on Windows 2003 Server running IIS6, but on Windows 2008 with IIS7 I got the following error on the log file, any idea what could cause such error or do i need to do anything on my MSI package? I am using Basic MSI on IS2008 Premier edition.

MSI (s) (2C:68) [15:07:10:825]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI510D.tmp, Entrypoint: CreateIISVRoots
1: This machine does not support legacy objects
1: InitIISObject
1: CoGetClassObject(GETAdminBaseCLSID(TRUE) error: -2147221164
1: Legacy objects not supported
Action 15:07:11: Progress Custom Action. Creating application Pools...
Action 15:07:11: Progress Custom Action. Creating web service extensions...
Action 15:07:11: Progress Custom Action. Creating IIS virtual directories...
Action 15:07:11: Progress Custom Action. Creating IIS virtual directory MyVDir
1: SetCommitPath for website '' and app ''
1: InstallShield project contains a website with name 'Default Web Site', site number '0', and port '80'. Checking if it exists...
1: GetAdminSection for section 'system.applicationHost/sites' and path 'MACHINE/WEBROOT/APPHOST' and commitpath 'MACHINE/WEBROOT/APPHOST'.
1: Check if site has port number: 80
1: GetBindingsCollection
1: Searching for binding element
1: GetPortFromBindingInfo: *:80:
1: Found site with the same port number.
1: Website exists. Additonal info: Site number '1', Port '80', sBasePath '/LM/W3SVC/1/Root', DisplayName 'Default Web Site'
1: Creating application 'BestMatchSimulatorGUI' with virtual directory 'MyVDir', website '1', and physical path: 'C:\Program Files\SMS\MyVDir\'
1: No element found with property 'path' value of '/MyVDir'.
1: Exception caught in PutPropertyValue for property 'path' with value 'MyVDir'
1: Attempt to change property value had problems, HRESULT: -2105
1: Error with IISRT: -2105
Action ended 15:07:12: InstallFinalize. Return value 3.
0 Kudos
davidh
Level 6

I would suggest trying the IISHelper.dll posted by Josh (see above, post from 2/19) if you have not already.
0 Kudos
DebbieL
Level 17

Another thing you may want to try: Add the legacy objects to your Windows Server 2008 box. This is one of the Windows features that you can turn on or off. I think it's called the IIS Metabase and IIS 6 Configuration Compatibility feature. Turn on that feature, and then try running your installation. (I don't think that Web service extensions can be installed on IIS 7 unless that feature is on. Perhaps that's what is causing the error.)

Debbie Landers
Macrovision Corporation
0 Kudos
romain
Level 2

Hi,
The new dll from joshstechnij still doesn't work on IIS 7
I am with IS 2008 premier
Is there a new fix to be able to install a web site with sub web site without the IIS6 compatibility mode ?
Thank you

the log:
1: SetVRtDWProperty for property '9001' with value '1740'.
1: GetAdminSection for section 'system.applicationHost/applicationPools' and path 'MACHINE/WEBROOT/APPHOST' and commitpath 'MACHINE/WEBROOT/APPHOST'.
1: Found element with property 'name' value of: PSWebPool2005
1: PutPropertyValue: sProperty time sValue 1.05:00:00 bIsPath 0
1: PutPropertyCommon: sProperty time sValue 1.05:00:00 bIsPath 0
1: getvaluelog
1: getvaluelog
1: Setting property 'time' to value '1.05:00:00' for element 'periodicRestart'. Old value: ''. m_sSectionName : 'system.applicationHost/applicationPools'.
1: getvaluelog
1: put_value succeeded. get_StringValue now returns '0' with string value '1.05:00:00'.
1: CommitChanges for path 'MACHINE/WEBROOT/APPHOST' and physical path 'C:\Windows\system32\inetsrv\config\'.
1: SetVRtDWProperty for property '9017' with value '4000'.
1: GetAdminSection for section 'system.applicationHost/applicationPools' and path 'MACHINE/WEBROOT/APPHOST' and commitpath 'MACHINE/WEBROOT/APPHOST'.
1: Found element with property 'name' value of: PSWebPool2005
1: PutPropertyValue: sProperty queueLength sValue 4000 bIsPath 0
1: PutPropertyCommon: sProperty queueLength sValue 4000 bIsPath 0
1: getvaluelog
1: getvaluelog
1: Setting property 'queueLength' to value '4000' for element 'add'. Old value: ''. m_sSectionName : 'system.applicationHost/applicationPools'.
1: getvaluelog
1: put_value succeeded. get_StringValue now returns '0' with string value '4000'.
1: CommitChanges for path 'MACHINE/WEBROOT/APPHOST' and physical path 'C:\Windows\system32\inetsrv\config\'.
1: SetVRtDelimMultiszProperty for property '9020' with value ''.
1: GetAdminSection for section 'system.applicationHost/applicationPools' and path 'MACHINE/WEBROOT/APPHOST' and commitpath 'MACHINE/WEBROOT/APPHOST'.
1: Found element with property 'name' value of: PSWebPool2005
1: CommitChanges for path 'MACHINE/WEBROOT/APPHOST' and physical path 'C:\Windows\system32\inetsrv\config\'.
1: SetVRtDWProperty for property '9023' with value '0'.
1: GetAdminSection for section 'system.applicationHost/applicationPools' and path 'MACHINE/WEBROOT/APPHOST' and commitpath 'MACHINE/WEBROOT/APPHOST'.
1: Found element with property 'name' value of: PSWebPool2005
1: PutPropertyValue: sProperty limit sValue 0 bIsPath 0
1: PutPropertyCommon: sProperty limit sValue 0 bIsPath 0
1: getvaluelog
1: getvaluelog
1: Setting property 'limit' to value '0' for element 'cpu'. Old value: ''. m_sSectionName : 'system.applicationHost/applicationPools'.
1: getvaluelog
1: put_value succeeded. get_StringValue now returns '0' with string value '0'.
1: CommitChanges for path 'MACHINE/WEBROOT/APPHOST' and physical path 'C:\Windows\system32\inetsrv\config\'.
1: CommitChanges failed with the following HRESULT: '-2147024864'.
1: Failed to set Percentage for app pool
1: Error with IISRT: -2252
Action ended 14:57:08: InstallFinalize. Return value 3.

Romain
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

I'm not sure what you mean by "install a web site with sub web site". Can you clarify this? Are you referring to child virtual directories?

Can you reproduce this behavior in a sample project that includes one feature, one component, one file, and any IIS items needed?
0 Kudos
romain
Level 2

Hi
Thank you for your help
I would like to have this structure:

C:\inetpub\wwwroot\MyComp\WebApp1

MyComp is just a folder under the root and WebApp1 is WebApplication and a folder under MyComp

The files are corectly copied but the WebApplication is created under root, not under MyComp

In IS, I have only one line to define the WebApplication with MyComp/WebApp1 with the correct home directory

Thank you
Romain
0 Kudos
aj_patra
Level 3

Hi Josh,

I tried with the helper.dll hotfix and it worked fine. I want to know whether I can use this patch in my build system for official releases.

Also after applying this patch it could not solve my issues completely.

We are preparing to support our product for Windows 2008 Server. Earlier our product was supporting Windows Server 2003.
- Windows Server 2003 has IIS 6.0
- Windows Server 2008 has IIS 7.0

The release note of IS2008 says, it supports IIS 7.0. But there is no option to create a application under the 'Default Web Site'. The settings for IIS in the IDE looks like only support the IIS 6.0. If I give a virttual directory name and application name, it always creates the virtual directory inside the application.

Even I observed the same behavior in the IS2009 beta.
Any comments?

Regards,
Ajit
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

The hotfix DLL should be usable for official releases. We haven't received any feedback indicating any negative effects with the changes made to resolve issues with IIS7 on Win2008 or Vista SP1.

IS2008 and 2009 do support IIS7 in that the IIS6 metabase compatibility option does not need to be installed on the OS in order for websites, virtual directories/applications, or application pools to installed. The IIS view in the IDE currently only reflects an IIS6 centric look at configuring IIS. This is something that we may change in the future to be more version independent. Virtual directories are always created in a new application (which also holds true for our pre-IIS7 support, it's just more obvious on IIS7 how things are created).

To install to the default website, create a website in the IIS view and do not make any changes to the port number or site number properties. At runtime, any virtual directories included in the website should be created under the default website.

Romain:
I attempted to use an application name in the format MyComp/WebApp1 but IIS will not accept this as a valid parameter to the APIs we use. Can you attach a project that demonstrates what you are explaining?
0 Kudos
moinkhan
Level 5

Where from we get the Beta version of IS2009? I would like to test our application in newer version of IS before its available.
0 Kudos
aj_patra
Level 3

Hi Josh,

My requirement is completely IIS7 centric.
I want to create a application under "default web site". There should be only a root virtual directory for the application. Please see the attached image. Also it allows me to associate a physical path for the application. The structure is:

- Site
- Application

If I use the IS2008 view, I could not find a way to create a application under the site. In the IDE vie, If I create a virtual diretory under site with one application and application pool, during installation it creates the following structure.

- Site
- Apllication
- file 1
- file 2
- Virtual Directory
- file 1
- file 2

To avid the extra virtual directory, I am deleteing it using appcmd.exe. Till now I do not see any side effect during installation and uninstallation. Is it the right approach?

Please let me know if it is not clear.


-Ajit
0 Kudos
chgruber
Level 4

Josh's iishelper.dll seems to have fixed the issue with Vista and Vista SP1 but we are still having issues with Server 2008.

No application pools or virtual directories are being created during the install.
(Using InstallShield 2008 Pro)

Has InstallShield 2008's IIS capabilities been tested with Server 2008? Has anyone had success installing/creating virtual directories/apppools in IIS on Server 2008 with IS2008?

Thanks in advance,
Chris
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

Ajit: We always create an application with the Application name specified in the virtual directory in the IIS view, and a virtual directory under that application named with the display name for the virtual directory from the IIS view. At this point, there is no functionality to create an application without the additional virtual directory. Your workaround should be fine as far as I can tell, as it should just remove the second element we create under the new application.

Chris: I am able to successfully install a virtual directory and application pool on Windows Server 2008 RTM. I have not heard of any issues with Server 2008 (besides the hang/abort behavior described in this thread). Please ensure the following:
- The features/components that contain the virtual directory and application are being installed on a 2008 machine.
- The virtual directory in your project does not have a blank application name. If this name is blank, nothing will be installed (a blank name resolves to the root application path '/', which already exists, so we do not try to install anything).
0 Kudos
chgruber
Level 4

Thanks for the quick reply Josh.

We are using variables for the AppPool and Virtual Directory names. To ensure that those were not the problem, I changed those to be constant values and still no luck.

Could there be something else I am missing here? Currently, .NET 3.5 is not installed on our InstallShield builder machine. Does it need to be?
0 Kudos