Common IIS Server Errors
When working with IIS it’s not uncommon to run into problems with pages not being served correctly.
When this happens you’re shown an error page with lots of text and a rather inscrutable error code in the form of a HRESULT rather than a human readable explanation of the failure. For example 0x800704ec.
Not super helpful.
In this article we’re going to cover some really common failures, then explain the cause and how to fix the failure.
0x800704ec : Software Restriction Policy
Error code 0x800704ec is decoded as: Serious, Win32, Software Restriction Policy.
The specified DLL c:\testISAPIWebsite\isapiExample.dll is not allowed to execute because it is not in the list of DLLs that IIS is configured to execute.
Add an ISAPI or CGI restriction to your IIS configuration.
0x800700c1 : Wrong Bit Depth
Error code 0x800700c1 is decoded as: Serious, Win32, Not a Win32 application.
The description “Not a Win32 application” is confusing because you’re pretty sure you did build a Windows DLL. What this confusing message means is that you’ve specified a 32 bit DLL when IIS was expecting a 64 bit DLL, or you’ve specified a 64 DLL when IIS was expecting a 32 bit DLL. (If IIS ever becomes available on non x86/x64 architectures like ARM you can be sure to see this error when x86/x64 binaries are specified when IIS is expecting ARM binaries and vice versa).
The specified DLL c:\testISAPIWebsite\isapiExample.dll is not allowed to execute because it is the wrong bit depth compared to how IIS is configured.
- If you’re copied the wrong version of the DLL, copy the correct bit depth version of the DLL to your web root.
- Configure IIS correctly for 32 bit DLLs or for 64 bit DLLs.
0x8007007e : Module Not Found
Error code 0x8007007e is decoded as: Serious, Win32, Module Not Found.
The specified DLL c:\testISAPIWebsite\isapiExample.dll could not be found.
Copy the correct bit depth version of the DLL to your web root.