The Messaging Engine failed to register an adapter “SOAP”

I ran into this problem when trying to call a SOAP web service that starts a BizTalk orchestration, here is the error in detail:

The Messaging Engine failed to register an adapter “SOAP”. Details: “Registering multiple adapter types within the same process is not a supported configuration. For e.g. HTTP and SOAP receive adapters cannot co-exist in the same process”

The cause of the problem is that there are multiple virtual directories under the DefaultAppPool, all these virtual directories host WCF services except the virtual directory that hosts the SOAP web service I was trying to call. It turns out IIS can’t run multiple adapters under the same application pool (WCF adapter and SOAP adapter in my case).

Quick solution is to create an application pool for each adapter type.