If you don't need to host ASP.NET Core web apps there, go to Control Panel | Programs to uninstall "Microsoft .NET x.x.x - Windows Server Hosting".
If you do need to host ASP.NET Core, then you need to learn that there are three kinds of application pools you can configure now on IIS,
- ARM64 application pools. That requires the new application pool setting
enableEmulationOnWinArm64
to be set to false
(as its default value is true
) and enable32BitAppOnWin64
to false
.
- x64 application pools.
enableEmulationOnWinArm64
to be set to true
and enable32BitAppOnWin64
to false
.
- x86 application pools.
enableEmulationOnWinArm64
to be set to true
and enable32BitAppOnWin64
to true
.
So far, the latest hosting bundle (.NET 7/8) only installs ARM64 build of ASP.NET Core module to the same machine, without x64/x86 builds. Therefore, you can only run ARM64 build of your web app in ARM64 application pools.
If you want to at least make ASP.NET Core module compatible with all three kinds of application pools, you need to perform an extra step to patch your hosting bundle installation with the support files I prepared in this GitHub repo
If you install hosting bundles for older .NET Core releases (.NET 6 for example), it installs x64/x86 build of ASP.NET Core module. Then all your web apps must be run in x64 or x86 compatible application pools, but not ARM64.
Ideally in the future IIS should introduce new values in preCondition
to configure all three builds (ARM64/x64/x86) separately in globalModules
section. That will allow all builds of ASP.NET Core module to work together on the same machine. Things might change in the future.
I also noticed in the module sections of IIS there was aspnetcorev2 there by default. Even after removing it from the top level iis module and from sites and restarting iis it still happens.