Friday, August 14, 2009

BizTalk 2009 64bit: Missing sapBinding in BizTalk admin and VS .Net 2008

I have been running BizTalk 2009 for quite some time now including the Beta version. Up until now, all of the work that I have been doing was on a 32bit platform. Now that we are moving to a 64bit platform, I am starting to run into some more challenges related to 64bit.

I installed the 64bit version of the WCF SDK SP2. I then went and installed the 64bit version of the BizTalk Adapter Pack 2.0. I opened a project that I had previously built on a 32 bit machine and successfully deployed the application to my 64bit laptop. When I attempted to import the binding file that had been previously used on the 32 bit solution, I got the following error:




At this point I tried to create a new send port that uses the Custom WCF Adapter. I clicked on the "Binding" tab and then on the pull down to see just what bindings had been registered. Here is what I found:


As you can see the sapBinding is no where to be found. I was curious to see what Visual Studio was seeing when I called upon the Consume Adapter Service. The error message that I received was "No valid adapters are installed on this machine"

After some digging, I was able to find the following link on TechNet which discusses the SQL Adapter, however the behaviour applies to the SAP Adapter as well.

Cause
The SQL adapter is a WCF custom binding, which is registered under System.ServiceModel in the machine.config file. A 64-bit platform has two machine.config files, one used by the 32-bit applications and the other used by the 64-bit applications. So, when you install the 64-bit version of the BizTalk Adapter Pack, the setup wizard registers the bindings in the 64-bit version of the machine.config file. However, Visual Studio runs as a 32-bit process and hence when you launch the Consume Adapter Service Add-in from Visual Studio, the plug-in checks for the bindings in the 32-bit version of the machine.config file and fails giving an error.


Resolution
Install both the 32-bit and 64-bit versions of the BizTalk Adapter Pack on a 64-bit WCF LOB Adapter SDK installation.

The document also stresses that you should only install the 64bit version of the WCF SDK SP2 as you cannot run this SDK side by side (32 & 64 bit)

So this explanation deals with Visual Studio, but what about the BizTalk Admin Console? Well, it runs as a 32 bit process as well which explains why the Adapter is not visible inside the console. After installing the 32bit BizTalk Adapter Pack 2.0, the sapBinding will now appear.

Suddenly, I am not as excited about the 64bit platform as I was previously.

3 comments:

Steef-Jan Wiggers said...

I had some difficulties too with running 64-bit BizTalk and its Adapter Pack in combination with Oracle. It is quite complex and hard to configure. So I am also not too thrilled about 64-bit platform.

Kent Weare said...

Hi Steef-Jan,

Yes, it is a little disappointing and I am sure there will be more of these anomolies that I will encounter before we have everything moved over to 64 bit...Stay tuned.

Kent

Fazlul Chowdhury said...

I have been using WCF LOB Adapter Pack to sync SAP HR data into Microsoft Active Directory. It has been working ok in 32 bit OS. But, when I tried using it in a 64 bit OS, I was getting the error "Cannot Load Microsoft.Data.SAP.SAPClient or any of the dependencies". I installed 64 bit WCF LOB Adapter Pack before trying it out. I tried installing 32 bit version into my pc and it won't let me install it as another version of the Adapter Pack was installed already. I will try some other way. But, if anyone have any information regarding this, please post the solution to fix it.