cancel
Showing results for 
Search instead for 
Did you mean: 
grahamm
Pilgrim

Installing a 32 Bit IIS Application to 64 Bit IIS 7

Hi,

we've recently upgraded our install project from Installshield 2009 to 2010. As a result the install has started to fail on 64 bit machines during the installation of the application to IIS. The error logged is shown below:

InstallShield 12:59:33: Found element with property 'name' value of: DefaultAppPool
InstallShield 12:59:33: Application pool Enable32bitAppOnWin64 value is 'false'
InstallShield 12:59:33: SetAspversion: machine is 64-bit and IIS running in a bit mode other than the currently selected mode
InstallShield 12:59:33: Error with IISRT: -2172


Now I realise that this error is fairly self explanatory but the issue we're having is that this check was not performed pre-2010 and the application was allowed to install. We then supplied some instructions in our install manual for the users to configure the appropriate settings (we have to use the Classic .Net App Pool so changing the application pool to that and then setting the Enable32bitAppOnWin64 to true). So we're looking for a way of disabling this check from being performed during the install?

An alternative fix would be to set the installed application to use the Classic .Net App Pool and set the Enable32bitAppOnWin64 flag to true but I cannot see how to use an existing app pool, only how to add a new one. Is there a way to do this?

Thanks in advance,

Graham
Labels (1)
0 Kudos
16 Replies
Marwan
Pilgrim

Re: Installing a 32 Bit IIS Application to 64 Bit IIS 7

For the 'Application Pool' setting, you can enter an existing AppPool name.
0 Kudos
grahamm
Pilgrim

Re: Installing a 32 Bit IIS Application to 64 Bit IIS 7

Thanks for the reply.

In that case, is there a way that I can force the Enable32bitAppOnWin64 setting to true for the existing Application pool without having to use custom actions?

Cheers,

Graham
0 Kudos
joshstechnij
Pilgrim

Re: Installing a 32 Bit IIS Application to 64 Bit IIS 7

Settings on existing application pools or other IIS items cannot be changed. However, if your application can run as either 32-bit or 64-bit, you could use a property in the value field for the AspNetVerBitness property on your application (in the ISIISProperty table). The property can be added to the Property Manage with a default value of x86. A set property custom action could be used to set the property to x64 if VersionNT64 is set.

This would then allow for the ASP.NET platform to be set according to what configuration the machine is likely to be in and would not require changing settings on existing IIS resources.
0 Kudos
Highlighted
sjeslis
Pilgrim

Re: Installing a 32 Bit IIS Application to 64 Bit IIS 7

John, I'm having the same issue. Could you clarify your solution?

You're saying add a property named AspNetVerBitness but how does this link to the ISIISProperty table in MSI?

Are you saying using the MSI Direct Editor add "AspNetVerBitness" to the ISIISPROPERTY table (under the IISCommonWebSite item I assume?)
and point it to some "[property_name]" that gets set to x86 or x64?
0 Kudos
joshstechnij
Pilgrim

Re: Installing a 32 Bit IIS Application to 64 Bit IIS 7

Your information is correct. In the ISIISProperty table, a new record would be added with the ISIISItem_ column set to the item this property applies to (from the ISIISItem table). The FriendlyName for the property should be AspNetVerBitness. The MetaDataValue column would be a property reference in the form [PROPERTYNAME]. This should then allow for dynamically configuring this IIS property based on the value of an MSI property.
0 Kudos
sjeslis
Pilgrim

Re: Installing a 32 Bit IIS Application to 64 Bit IIS 7

Setting this on IsAppPool item did nothing and still yielded this, noting that it found my x86 request:

InstallShield 16:56:44: IIS7 check for ASP.NET version bitness on application pool 'DefaultAppPool', install is requesting 'x86'
InstallShield 16:56:44: GetAdminSection for section 'system.applicationHost/applicationPools' and path 'MACHINE/WEBROOT/APPHOST' and commitpath 'MACHINE/WEBROOT/APPHOST'.
InstallShield 16:56:44: Found element with property 'name' value of: DefaultAppPool
InstallShield 16:56:44: Application pool Enable32bitAppOnWin64 value is 'false'
InstallShield 16:56:44: SetAspversion: machine is 64-bit and IIS running in a bit mode other than the currently selected mode
InstallShield 16:56:44: Error with IISRT: -2172
Action ended 16:56:44: InstallFinalize. Return value 3.
Action 16:56:44: Rollback. Rolling back action:

will try setting it on the website item.
0 Kudos
sjeslis
Pilgrim

Re: Installing a 32 Bit IIS Application to 64 Bit IIS 7

Same moving that ISIISProperty property to IsIISCommonWebsite item in the table.
0 Kudos
sjeslis
Pilgrim

Re: Installing a 32 Bit IIS Application to 64 Bit IIS 7

I pointed my web site being created to our own application pool which has the "Enable 32-bit applications" setting set vs. allowing it to default to DefaultAppPool.
0 Kudos
grahamm
Pilgrim

Re: Installing a 32 Bit IIS Application to 64 Bit IIS 7

We also ended up creating our own custom ApplicationPool with the Enable32-bit application set to on and used this custom AppicationPool in our installed web application and this has resolved the issue.

Graham
0 Kudos