There could be an instance where a dll that is specified in IIS that is not present. When this occurs, there are three possibilities.
You may see an event similar to this when the first request hits the application pool.
1. You have migrated the settings from one server to another that does not have the module installed that is being called for. For example, the previous server had urlrewrite installed but the new one does not (most common).
2. There is a custom module that applicationhost.config is looking for that is not present.
3. An unwanted module has been added to IIS and application pool(s) cannot be started when the corresponding dll file is deleted.
When identified thru the event log you can see which module is causing the issue. For the purpose of the article, we are using Rewritemodule as an example.
If we want to remove this setting via PowerShell, you can do so with the following commands.
Remove-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.webServer/globalModules" -name "." -AtElement @{name='RewriteModule'}
Remove-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.webServer/modules" -name "." -AtElement @{name='RewriteModule'}
In combination with these two scripts and an IIS reset the app pools should now be able to start.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.