BizTalk 2020 Logic App Adapter receive issue

Introduction

In this article I look into a BizTalk Server 2020 Logic App Adapter configuration issue leading to failure in the Adapter when used in receive locations, and I will show one way to resolve this issue.

I had an environment with BizTalk Server 2020 Enterprise CU1, it was the first time to use the Logic App adapter in BizTalk Server 2020 as part of a hybrid integration solution with Azure Logic Apps. After conducting all the required port-level and receive location configurations, I tried to enable the Logic App receive location, however the Logic App adapter failed with the following errors:

The receive location “Receive Location2” with URL “/ReceiveWCFService/Service1.svc” is shutting down. Details:”The Messaging Engine failed while notifying an adapter of its configuration. “.

The Messaging Engine failed to add a receive location “Receive Location2” with URL “/ReceiveWCFService/Service1.svc” to the adapter “LogicApp”. Reason: “80070057”.

The Messaging Engine encountered an error when creating the receive adapter “LogicApp”. The Assembly is: “Microsoft.BizTalk. Adapter.LogicApp. Runtime.LogicAppReceiver, Microsoft.BizTalk. Adapter.LogicApp.Runtime”. The error occurred because the component does not implement the mandatory interface “IBTTransportControl”.

At first, it seemed like there is a missing interface implementation in the Logic App adapter DLLs, as indicated in the last error message.

The Logic App adapter DLLs seemed to be the same as the ones in the adapter used with BizTalk 2016, I tried reflecting the DLL looking for clues and tried re-installing the Logic App adapter DLLs, however, the same issue persisted. Further, the Logic App adapter was working fine on another environment with BizTalk Server 2016 which pointed me to the right direction.

The issue

The root cause of this issue was simple and can get easily overlooked; apparently the BizTalk 2020 configuration assigned the in-process host to the Logic App Adapter Handler Receive settings, instead it should have been bound to the isolated host.

The error indicating the missing interface implementation now made sense, as the receive adapter is not implemented for in-process host in the first place.

Resolution

The resolution is simple. First, I had to remove the adapter from all assigned send ports and receive locations in my applications, afterwards, I Removed the Logic App adapter from BizTalk and then I Added it again using using the VB scripts (RemoveLogicAppAdapter.vbs, AddLogicAppAdapter.vbs).

These VB scripts ships with the Microsoft BizTalk Server Adapter for Logic Apps installer used for BizTalk 2016, the scripts should be available in “C:\Program Files (x86)\Microsoft BizTalk Server\LogicApp Adapter“.

This resolved the adapter handler configuration issue, now the Logic App Adapter Handler Receive configuration in BizTalk Server 2020 was correctly bound to the isolated host and it worked fine.

One final note, I was able to reproduce the same issue on other environments with BizTalk Server 2020 Developer and Enterprise editions with and without CU1.

One Comment