cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Ioanb22
Level 3

IIS Application Pool settings not saved

Hello,

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? 

Thanks,

Ioan

 

 

0 Kudos
(10) Replies
Jenifer
Flexera Alumni

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,

Thanks,

Jenifer

0 Kudos

Jenifer,

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?

Thanks,

Ioan

0 Kudos

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

Identity: ApplicationPoolIdentity

Limit Interval (minutes): 5

Screenshot Project.jpeg

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.

Thanks,

Ioan

 

0 Kudos

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"!!!!

 

Thanks,

Jenifer

0 Kudos

Jenifer,

I checked this file before I posted the question here.

Here's what I found when I searched for my test 'AppPool1':

<applicationPools>
<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" />
<recycling>
<periodicRestart requests="0" time="1.05:00:00">
<schedule>
<clear />
</schedule>
</periodicRestart>
</recycling>
<cpu action="NoAction" resetInterval="00:05:00" />
</add>
<applicationPoolDefaults managedRuntimeVersion="v4.0">
<processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="false" />
</applicationPoolDefaults>
</applicationPools>

 

and a bit later:

<customMetadata>
<key path="LM/W3SVC/APPPOOLS/AppPool1">
<property id="9043" dataType="DWord" userType="1" attributes="Inherit" value="1" />
</key>
<key path="LM/W3SVC/INFO">
<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&#xA;" />
</key>
</customMetadata>

 

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.

Thanks,

Ioan

 

0 Kudos

In the end I tried my test setup on 3 different machines (Win10, Win7) and all worked as expected.
So probably something is wrong on my test machine.
Case closed, no problem found.

Ioan

0 Kudos

In re-open this case because I still have the issue.

More details:

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?

Thanks,

Ioan 

 

0 Kudos

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

  1. On the Start page, choose Control Panel, and then choose Programs.

  2. Under Programs and Features, choose Turn Windows features on or off.

    The Windows features dialog box appears.

  3. 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.

  4. 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.

     Note

    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.

  5. Expand the root-level item Internet Information Services, expand World Wide Web Services, and then do the following:

    1. 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

      • ISAPI Extensions

      • ISAPI Filters

    2. Expand Common HTTP Features, and then select Defau lt Document, Default Browsing, HTTP Errors, and Static Content.

    3. Expand Security, and then select the following features:

      • Request Filtering

      • Windows Authentication

  6. 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.

  7. Choose the OK button to complete the installation.

  8. 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.

Referral link:https://docs.microsoft.com/en-us/dynamics-nav/how-to--install-and-configure-internet-information-services-for-microsoft-dynamics-nav-web-client

 

Thanks,

Jenifer

0 Kudos

Jenifer,

 

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?

Thanks,

Ioan

 

0 Kudos

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.

https://blogs.msdn.microsoft.com/benjaminperkins/2013/07/01/troubleshooting-badly-behaving-iis-application-pools/

 

Thanks,

Jenifer

0 Kudos