Here are some troubleshooting HTTP 500.19 errors in IIS 7:

Error Message #1:

HTTP Error 500.19 - Internal Server Error
Description: The requested page cannot be accessed because the related configuration data for the page is invalid.
Module: StaticCompressionModule
Notification: MapRequestHandler
Handler: StaticFile
Error Code: 0x800700c1
Requested URL: http://localhost/
Physical Path: C:\inetpub\wwwroot
Logon Method: Anonymous
Logon User: Anonymous

Reason:

The Error Code in the above error message is “0x800700c1” which when translated through ERR.EXE, is
# %1 is not a valid Win32 application.

Solution:

This error normally indicates an attempt to use EITHER
Ø 32-bit executable from a 64-bit process
OR
Ø A corrupt executable
Hence the solution is to make sure that the listed module’s bitness (32bit/64bit) matches the bitness of the application Pool.

Error Message #2:

HTTP Error 500.19 - Internal Server Error
Description: The requested page cannot be accessed because the related configuration data for the page is invalid in the metabase on the Web server.
Error Code: 0x800700b7
Notification: BeginRequest
Module: IIS Web Core
Requested URL: http://localhost/
Physical Path: C:\inetpub\wwwroot
Logon User: Anonymous
Logon Method: Anonymous

Handler: StaticFile
Config Error: Cannot add duplicate collection entry of type 'add' with unique key attribute 'name' set to 'header’
Config File: \\?\C:\inetpub\wwwroot\web.config

Config Source:

21: <customHeaders>
22: <add name="header" value="text/plain" />
23: </customHeaders>

Reason:

This problem essentially happens if there is a duplicate entry for the configuration section setting at a higher level in the configuration (i.e. in parent site/folder’s web.config or applicationHost.config file). The error message itself points out the location of duplicate entries.

Solution:

One should look in the site’s config file and compare it with applicationHost or web.config file at a higher level to check for duplicate entries as pointed by the error message.  You can either remove this entry to make the server run again, or make the entry non-duplicate by changing the collection key.

For example, the above error message was because of the same custom header defined at the IIS root level (applicationHost.config) and at the Default Website (web.config). To solve this, we can

1. Remove this entry from web.config file : <add name="header" value="text/plain" />

OR

2. Add remove OR clear element before this add element:

<remove name="header"/>

OR

<clear />

Error Message #3:

HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.
Module: IIS Web Core
Notification: BeginRequest
Handler: Not yet determined
Error Code: 0x8007000d
Config Error: Configuration file is not well-formed XML
Config File: \\?\ C:\inetpub\wwwroot \web.config
Requested URL: http://localhost/
Physical Path: C:\inetpub\wwwroot
Logon User: Not yet determined
Logon Method: Not yet determined
Config Source

3: <system.webServer>
4: </handlers>
5: <remove name="StaticFile"/>

Reason:

That error message goes on to say what exactly is bad about your configuration file, hence you should refer the “Config Error” and “Config Source” sections. This problem occurs because the ApplicationHost.config file or the Web.config file contains a malformed or unsupported XML element.

Solution:

Delete the malformed XML element from the ApplicationHost.config file or from the Web.config file as indicated by the error message.

There are couples of instances that we have come across where the error code remains 0x8007000d, but the cause of issue was interesting.

In one scenario, we had a virtual directory pointing to a UNC share content. This same above 500.19 error was caused because of wrong password specified in the “Connect as..” setting. So make sure to provide the right credentials under “Connect as..” .

Another instance where the error code remained “0x8007000d” but the “Config Error” didn’t complain the mal formed XML, rather was about Configuration section encryption.

HTTP Error 500.19 – Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.

Module : ConfigurationValidationModule
Notification: BeginRequest
Handler : PageHandlerFactory-Integrated
Error Code: 0x8007000d
Config Error: Configuration section encryption is not supported
Config File: \\?\C:\inetpub\wwwroot\aspnet\web.config
Requested URL: http://localhost/
Physical Path: C:\inetpub\wwwroot
Logon User: Not yet determined
Logon Method: Not yet determined
<identity configProtectionProvider="RsaProtectedConfigurationProvider">
<EncryptedData Type=http://www.w3.org/2001/04/xmlenc#Element
As the error suggests, the error is because IIS7 configuration system only supports per-attribute encryption; it does not support per-section encryption.

Error Message #4:

HTTP 500.19 - Internal Server Error

Module: IIS Web Core
Notification: BeginRequest
Handler: Not yet determined
Error Code: 0x8007010b
Config Error: Cannot read configuration file
Config File \\?\C:\inetpub\wwwroot\aspnet\web.config
Logon Method: Not yet determined

Reason:

ERROR CODE: 0x8007010b translates to “ERROR_DIRECTORY - The directory name is invalid.”

Solution:

As the error indicates, IIS is not able to find the content directory. For this error, we can run Process Monitor OR use Failed Request Tracing to get the Directory name where it fails. And then verify if that directory name/path is valid or not. If it does exist, then verify the NTFS permissions on that directory for account that is being used to access it.

We have seen this error when the site content is pointing to some Non-NTFS File system. In such cases, it is advisable to test it by placing the content on a Windows/NTFS share.