BizTalk Admin only installation bug : Failed to create WCF-SQL Transport Component

Published on : Apr 8, 2013

Category : General

Saravana

Author

Recently we received a support call from one of our BizTalk360 customer saying, they were able to control all the send port/receive locations using BizTalk360 but whenever they try to start/stop send port or enable/disable receive location that uses WCF-SQL adapter it throws the following exception. Failed to create ‘WCF-SQL’ Transport Component Microsoft.BizTalk.ExplorerOM.BtsException: Failed to create ‘WCF-SQL’ Transport Component at Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer.SaveChangesWithTransaction(Object transactionObj) at Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer.SaveChanges()   We asked the customer to try the same actions using BizTalk administration console and they reported same issue. The customer has gone down our standalone server deployment, where you install BizTalk360 on an external standalone server (not in any of your existing BizTalk servers ). The pre-requisite for this type of deployment is to install only BizTalk Admin components  (not the full run-time) before installing BizTalk360. We couldn’t find the issue and finally we raised a Microsoft PSS support call. After couple of days back and forth conference call and help of one of the PSS support staff (Yakshit Gohel), they finally figured out it’s a bug in BizTalk admin only installation.

Cause

The main cause for this issue is due to the dependency on one of the run-time dll’s  (Microsoft.BizTalk.Adapter.WCF.Runtime.dll) that gets installed only when you install all the components of BizTalk Server. Since in our case we only installed BizTalk Admin components, that dll was missing in the server and hence the error.

Resolution

One option is to install the full version of BizTalk runtime in the standalone server. We couldn’t do it because it has licensing implication. BizTalk admin components can be installed in any server without any license restriction. But if you install the full version, then that server needs to be licensed. The second option is to go through the following procedure to fix the issue.
  1. Get the same dll (Microsoft.BizTalk.Adapter.WCF.Runtime.dll) from a machine where BizTalk runtime is installed.
  2. GAC this dll in the machine where we are facing the problem.
  3. Install BizTalk adapter pack 32-bit & 64-bit (if not installed)
  4. Run the following commands from the command prompt from this path (c:\Program Files (x86)\Microsoft BizTalk Adapter Pack\bin)
  5. CustomAction.exe -ib sql 5 31bf3856ad364e35 -> to register the WCF-SQL adapter
  6. CustomAction.exe -ib db 5 31bf3856ad364e35 -> to register the WCF-Oracle adapter
  7. CustomAction.exe -ib sap 5 31bf3856ad364e35 -> to register WCF-SAP adapter
  8. Open the BizTalk MMC. You should be able to enable or disable the receive location now.

Other adapter effected

You’ll experience the same issue for some of the other WCF adapters (WCF-Oracle and WCF-SAP). The above steps should fix the problem. Also note the other reason you might see this error is, if you haven’t installed the WCF LOB adapters on the standalone server (both 32 bit and 64 bit versions)