While configuring an web service generated using the BizTalk Web Services Publishing Wizard using WCF-BasicHttp adapter you might get the following error message

The Messaging Engine failed to register the adapter for "SOAP" for the receive location "/XXXX/XXXXXXXXRequestResponse.asmx".
Please verify that the receive location exists, and that the isolated adapter runs under an account that has access to the BizTalk databases.

BizTalk 2010 gives you two ways to expose your Orchestrations as a service one using the SOAP adapter (BizTalk Web Services Publishing Wizard) the other using the WCF adapter (BizTalk WCF Service Publishing Wizard). When you use the BizTalk Web Services Publishing Wizard you generate a web service with a .asmx extension. When you use the BizTalk WCF Service Publishing Wizard you generate a web service with a .svc extension.

Usually during an upgrade it is recommended to expose your orchestrations via WCF using the BizTalk WCF Service Publishing Wizard.  But using the WCF Publishing Wizard would change the URL for the service from .asmx to .svc. Which would mean a larger impact in terms of communicating to all the clients that use the service about the change in the URL.

As you know BasicHttp binding in WCF is compatible with asmx. So one of our clients had published the orchestration using the Web Services Wizard (asmx) and while configuring the receive location used the WCF-BasicHttp binding to receive the messages. That’s when this error will show up.

When you publish an orchestration using the Web Services Wizard (asmx) it internally uses an assembly from the SOAP adapter to construct the BizTalk message. So the Host needs to have permission to load the SOAP adapter. In this case we had our Host as a receive handler for the WCF-BasicHttp Adapter alone and not the SOAP Adapter.

To get around this situation you must add your HOST as a new Receive/Send Handler for the SOAP adapter as well (even though you are using the WCF-BasicHttp Adapter to receive the messages).

To conclude

1. Do upgrade to the WCF Adapter but use the BizTalk WCF Service Publishing Wizard

2. The BizTalk Web Services Publishing Wizard is meant to be used with the SOAP Adapter

3. If you use the BizTalk Web Services Publishing Wizard and configure the Receive Location to using WCF-BasicHttp binding you will need to grant the HOST permission to load both the WCF-BasicHttp and SOAP Adapters.

Blog Post by: Shinva