Exchange Server 2007 SP3 Breaks 32-Bit IIS Application Pools

Recently while installing Maximizer CRM on a fully updated Small Business Server 2008 machine I had some problems getting the Web Access and Wireless components working. The first problem was a Server Error when I went to the Web Access URL:

Could not load file or assembly 'Maximizer.Data' or one of its dependencies. An attempt was made to load a program with an incorrect format.

A quick Google search turned up this post in the Maximizer CRM Central forums. It turns out this error was caused by the DefaultAppPool not having Enable 32-Bit Applications set to True, moving the 32-bit Maximizer applications to the unused Classic .NET AppPool which had Enable 32-Bit Applications set to True, solved the problem. Upon browsing to the site I no longer received any Server Errors but was instead greeted with a Service Unavailable, HTTP Error 503.

A check of the Event Viewer turned up the following Errors:

Event 2282, IIS-W3SVC-WP

The Module DLL 'C:\Program Files\Microsoft\Exchange Server\ClientAccess\Owa\auth\exppw.dll' could not be loaded due to a configuration problem. The current configuration only supports loading images built for a x86 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.

Event 5002, WAS

Application pool 'Classic .NET AppPool' is being automatically disabled due to a series of failures in the process(es) serving that application pool.

Basically exppw.dll appeared to be causing my Classic .NET AppPool to crash even though we hadn't included it in the Application Pool. A quick check of creating a completely empty Application Pool from scratch and placing one 32-bit application in it resulted in the same error. Consulting Google, I found this post.

The solution was quite easy, run Notepad as an Administrator and open %windir%\inetsrv\config\applicationHost.xml

Then search for exppw, there should be two occurrences and they need to have the preCondition="bitness64" added to them.

<globalModules>
     <add name="exppw" image="C:\Program Files\Microsoft\Exchange Server\ClientAccess\Owa\auth\exppw.dll" preCondition="bitness64" />

<modules>
     <add name="exppw" preCondition="bitness64" />

Running iisreset and then browsing to the web sites confirmed the fix worked. I also found this page with a little more information on the problems.

Comments

I don't normally comment, but after spending most of the weekend preparing a 2008 server - only to install Exchange SP3 and break everything - your article saved me many hours of head scratching!

Thanks!

I've just spent something like 5 hours looking for a solution.
This article saved many more hours of searchin.
Cheers

Ultimately the resolution to this difficulty is to set up your ASP.NET application with the right explanation with the accurate rights it requirements. midnightessays.com

Super Fun Time