IIS Application Pool settings not saved
I have an Basic MSI project (IS 2018R2) which creates an Application Pool and a Web Site with an Application set to use this Application Pool.
Installed on a Win10 64-bits, all goes nice except some settings of the Application Pool are not saved:
- Managed Pipeline Mode I want it to Integrated, but comes out as Classic
- Enable 32-Bit Applications I want it Yes, but comes out No.
- Process Model Identity I want it ApplicationPoolIdentity, but comes out NetworkService.
I'm new with IIS, but after installation my web app does not work, but if I just turn (manually - in Advanced Settings) the Enable 32-Bit Applications ON, it works.
Anybody can give me a hint?
Hi @Ioanb22 ,
Hope you had set mentioned properties of Application-Pool:
Managed Pipeline Mode
Enable 32-Bit Applications
- Process Model Identity
In application-pool properties under categories of General,Process Model you can find and set.
Internet Information Services->Application Pools->New Pool(name it)->General->Managed Pipeline Mode
Internet Information Services->Application Pools->New Pool(name it)->General->Enable 32-Bit Applications
Internet Information Services->Application Pools->New Pool(name it)->Process Model->Identity
I could see this been setting properly on quickly checking Internet Information Services(IIS) Manager after installing setup.
How did i check?
Application Pool->Newly added Pool will appear with given setting values->Check using Advanced settings
In Website view->Website been created(If it isn't visible try removing default website and try installing setup)->Advanced Settings->AppPool should be which ever you had associated in InstallShield(Internet Information Services->Website-1->Application Settings->Newly added Application pool)
Hope web application dint work because of 32-bit application trying to run on 64-bit machine without setting Enable 32-bit application to Yes.
Hope it clarifies,
I did all you mentioned:
The new created Application Pool has the 3 settings (plus the CPU Limit Interval - which is applied!).
I created a new Web Site (MyCompany) and on it a new Application. This new Application has the Application Pool set to my new created Application Pool above.
After install, the new Web Site is created with my application on it set up to my Application Pool.
The new Application Pool is created but the 3 settings mentioned are not applied, they're left as Classic (Managed Pipeline Mode), False (Enable 32-Bit Applications) and NetworkService (Identity). All these are different from my MSI.
And my app does not start. But if I change them manually (Actually only the 32 -Bit), my app will start.
So, I need to find out why these settings are not applied, or why are they reverted?
I created a test app where only a new IIS Application Pools is created with the following settings (no files, nothing else in the project):
Managed Pipeline Mode: Integrated
Enable 32-Bit Applications: Yes
Limit Interval (minutes): 5
The result after installation is in Installed.jpg.
Only Limit Interval (minutes) is set as requested, the other 3 are not set.
Please let me know what I do wrong.
Hi @Ioanb22 ,
Let me explain bit more about where saved values will be in the machine you are installing/installed:
The values of application pool,application & websites all go and sit in file called applicationHost.config under C:\Windows\System32\inetsrv\config\applicationHost.config.Any value that would be saved with respect to IIS settings you could find here.
I doubt saving has some issues here.
Can you monitor this file before and after installation of setup to get more insights? checked in multiple machines,it works without issues.What is surprising to me was "Integrated" is the default value but it gets saved as "Classic"!!!!
I checked this file before I posted the question here.
Here's what I found when I searched for my test 'AppPool1':
<add name="DefaultAppPool" />
<add name="Classic .NET AppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" />
<add name=".NET v2.0 Classic" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" />
<add name=".NET v2.0" managedRuntimeVersion="v2.0" />
<add name=".NET v4.5 Classic" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" />
<add name=".NET v4.5" managedRuntimeVersion="v4.0" />
<add name="ASP.NET v4.0 Classic .NET AppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" />
<add name="AppPool1" queueLength="4000" managedPipelineMode="Classic">
<processModel identityType="NetworkService" idleTimeout="00:20:00" maxProcesses="1" />
<periodicRestart requests="0" time="1.05:00:00">
<cpu action="NoAction" resetInterval="00:05:00" />
<processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="false" />
and a bit later:
<property id="9043" dataType="DWord" userType="1" attributes="Inherit" value="1" />
<property id="4012" dataType="String" userType="1" attributes="Inherit" value="NCSA Common Log File Format,Microsoft IIS Log File Format,W3C Extended Log File Format,ODBC Logging" />
<property id="2120" dataType="MultiSZ" userType="1" attributes="None" value="400,0,,,0
As you can see, the values I set in InstallShield project are not saved (only the CPU resetInterval = 5 minutes).
I don't know anymore where to look.
I attach my test project (ism), maybe helps.
In re-open this case because I still have the issue.
On different development machines all goes well.
On different test, clean machines, the Application Pool settings are not saved.
This behavior seems to be pretty consistent, so I presume that on the test machines we're missing something that is pre-installed on development machines. Could be some parts of VS, etc...
So again: anybody has an idea?
Anybody experienced something similar?
Hi @Ioanb22 ,
I think you might need to enable ASP.Net features & common HTTP features as well.Below are the detailed explanation about IIS-related feature enabling from Microsoft:
Install IIS on Windows 7, 8, 8.1, and 10
On the Start page, choose Control Panel, and then choose Programs.
Under Programs and Features, choose Turn Windows features on or off.
The Windows features dialog box appears.
Expand the root-level item .NET Framework 4.5 Advanced Services, .NET Framework 4.6 Advanced Services, or .NET Framework 4.7 Advanced Services, and then do the following:
Select ASP.NET 4.5, ASP.NET 4.6, or ASP.NET 4.7.
Expand WCF Services, and then select HTTP Activation.
Expand the root-level item Microsoft .NET Framework 3.5 (including .NET 2.0 and 3.0), and then select Windows Communication Foundation HTTP Activation.
The Microsoft .NET Framework 3.5 (including .NET 2.0 and 3.0) item is only available if.NET Framework 3.50 is installed. If the item is not shown, then there is no action for this step.
Expand the root-level item Internet Information Services, expand World Wide Web Services, and then do the following:
Expand Application Development Features, and select the following features:
.NET Extensibility 3.5 (if .NET Framework 3.5 is installed)
.NET Extensibility 4.5, .NET Extensibility 4.6, or .NET Extensibility 4.7 (for Windows 10)
ASP.NET 3.5 (if .NET Framework 3.5 is installed)
ASP.NET 4.5, ASP.NET 4.6, or ASP.NET 4.7
Expand Common HTTP Features, and then select Defau lt Document, Default Browsing, HTTP Errors, and Static Content.
Expand Security, and then select the following features:
Under Internet Information Services, expand Web Management Tools, and then select IIS Management Console.
This is an optional step to install Internet Information Service IIS Manager. You use Internet Information Service IIS Manager to manage local and remote web servers and sites.
Choose the OK button to complete the installation.
To verify that the web server has been installed correctly, start your browser, and then type http://localhost in the address.
The default web site opens and should display an IIS 8 image.
I just did everything you recommended (most of the settings were already there) and I got the IIS default page in browser.
But nothing changed in the behavior of my Application pool: the 3 settings (32bits, Pipeline, Identity) are still not set as requested.
Any other ideas?
Hi @Ioanb22 ,
With the required windows features enabled it has to work as expected.If troubleshooting specific application pool can help you with,you can follow instructions given in the below link:
These can log events on hitting specific function calls looks like.