4

I've just been working on migrating a staging web site from II6 to IIS8.

IIS8 comes with an option Enable 32-Bit Applications which is a true false flag. The explanation of this flag is:

[enable32BitAppOnWin64] If set to True for an application pool on a 64-bit operating system, the worker process(es) serving the application pool run in WOW64 (Windows on Windows64) mode. In WOW64 mode, 32-bit processes load only 32-bit applications.

Now if I set this to False my web site stops serving and I get a 500 logging an error message of:

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

Now I guessed that their must be an assembly with x86 flags set, so I followed the instructions from this post using CorFlags to check this. But the all return Any CPU, i.e.

Version    : v4.0.30319
CLR Header : 2.5
PE         : PE32
CorFlags   : 9
ILONLY     : 1
32BIT      : 0
Signed     : 0

There are slight veriations but thats the jist.

So why do I need to set Enable 32-Bit Applications to True?

So I've done some more investigation using Process Explorer (this question helped) and it appears that if I set enable 32-bit applications to False and even though the Corflags says they do not require 32 bit several of the dlls do have an image type of 32-bit:

enter image description here

Community
  • 1
  • 1
Liam
  • 27,717
  • 28
  • 128
  • 190

1 Answers1

1

I believe I've gotten to the bottom of this, eventually!

So it appears that this machine is missing some of the x64 configuration. Particuarly the "ISAPI Filters" configuration contained the standard .net 4 aspnet_filter.dll (C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll) but not the x64 version (C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll)

enter image description here

From talking with our infrastructuire guys they suggested the best way to get this set up correctly is to "uninstall the .Net 4.0 feature and re-install it" bear in mind this requires a reboot!

Community
  • 1
  • 1
Liam
  • 27,717
  • 28
  • 128
  • 190