After monthly server patching, I also made some security enhancements to the web.config files in the C:\Windows\Microsoft.NET\FrameworkXX\vXXX\CONFIG\ directories. It was therefore important that I test both 32bit and 64bit application pool modes. I found that tests running 64bit mode were suddenly failing with the following error message:
ISAPI Filter ‘C:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.dll’ could not be loaded due to a configuration problem. The current configuration only supports loading images built for a AMD64 processor architecture. The data field contains the error number. To learn more about this issue, including how to troubleshooting this kind of processor architecture mismatch error, see http://go.microsoft.com/fwlink/?LinkId=29349.
It was of no surprise what so ever that the link included in the error message was 100% useless (thanks again Microsoft). One article I found suggested I uninstall .NET 4 – that’s like turning a monitor off to fix a dead pixel.
Upon closer inspection of the error message I noticed the problem:
Windows doesn’t handle double slashes very well as opposed to Linux. What is strange is none of these settings are manually changed which suggests it was perhaps a Windows update that caused this, however I have no evidence beyond change control logs.
I fixed with the following process:
Opened IIS Manager and selected the IIS web server node:
In the middle pane, browse to the IIS section and select ISAPI Filters:
Expand the columns as required, looking for an Executable path with \\ in it, then click Edit:
From the above screenshot, change the \\ to \ so the path reads:
Just keep in mind that the folders Framework and Framework64 or the .NET version may change depending on your implementation.
After clicking OK, all my testing started to work again and the 500 Internal Server errors went away.
A possible Microsoft update (exact cause unknown) made an error updating an existing or installing a new ISAPI handler to IIS. By mishandling the path, it inserted \\ instead of \ into the executable path causing IIS to be unable to load the filter.
This caused 500 Internal Server errors to sites/applications running application pools in 64bit mode.
Hopefully this helps someone out. If it does, leave me some feedback! Thanks all!
- Automatically Clean Up Temporary ASP.NET Files
- How to delete ASP.NET temporary files from shared server
- Restore SQL Azure Backup to MSSQL Server
- What application pool is using all that CPU?
- 2 Reasons Why I Am rolling Back From Windows 8.1 to Windows 7
- Error Connecting to VPN – Error 850: The Extensible Authentication Protocol type required for authentication…
- Error message “The file is either corrupted or does not have the latest credentials associated with recovery service. (ID: 34513) “
- Windows sidebar.exe Memory Leak