No valid adapters installed

In BiztTalk 2010 applications talk to sql database through WCF-SQL adapter which is part of BizTalk Adapter Pack 2010, in regards to installation of these WCF based database adapters, it could prove to be very difficult to get them to work in development.

I tried the installation on two of windows 7 based development pcs and neither of them worked initially, and errors I got is:

Within a BizTalk project , Add- Add generated items- Consume Adapter Service then

No Valid Adapters VS2010

No valid adapters installed on the machine.
Microsoft.ServiceModel.Channels.Tools.MetadataSearchBrowse.MachineConfigException: No valid adapters installed on the machine.
at Microsoft.ServiceModel.Channels.Tools.MetadataSearchBrowse.MetadataPanel.EnumerateAllAvailableBindings(String bindingExtensionName, String bindingConfiguration)
at Microsoft.ServiceModel.Channels.Tools.MetadataSearchBrowse.MetadataPanel..ctor(MetadataUserControl usercontrol, AdapterProperties properties, String bindingExtensionName, String bindingConfiguration, String uri)

There might be because of one of following issues if you get stuck here :

1.WCF LOB and Adapter Pack

Adapters are provided by adapter pack, but for adapter pack to work, you need to install WCF LOB SDK, initially you might not even get ‘Consume Adapter Service’ under ‘Add Generated Items’, this add-in is installed by WCF LOB SDK.

So the right step should be :

First Install WCF LOB Adapter SDK 2010
Second install Microsoft BizTalk Adapter Pack 2_0 evaluation

I am using x86 versions.

2. No valid adapters installed

The installation kit of above does not register adapters in config file on windows 7, you will have to do it manually yourself.

Some say that the new adapters registered in .Net v2, actually they have not been registered in any version of .net on my development pcs

All you need to do is:

Register new bindings in machine.config under C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config

<bindingExtensions>
     <add name="sqlBinding" type="Microsoft.Adapters.Sql.SqlAdapterBindingCollectionElement, Microsoft.Adapters.Sql, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
     <add name="sapBinding" type="Microsoft.Adapters.SAP.SAPAdapterBindingSection, Microsoft.Adapters.SAP, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
     <add name="oracleDBBinding" type="Microsoft.Adapters.OracleDB.OracleDBAdapterBindingSection, Microsoft.Adapters.OracleDB, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      <add name="siebelBinding" type="Microsoft.Adapters.Siebel.SiebelAdapterBindingSection, Microsoft.Adapters.Siebel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      <add name="oracleEBSBinding" type="Microsoft.Adapters.OracleEBS.OracleEBSBindingCollectionElement, Microsoft.Adapters.OracleEBS, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</bindingExtensions>

<client>
       <endpoint binding="sqlBinding" contract="IMetadataExchange" name="mssql" />
	<endpoint binding="sapBinding" contract="IMetadataExchange" name="sap" />
	<endpoint binding="oracleDBBinding" contract="IMetadataExchange" name="oracledb" />
	<endpoint binding="siebelBinding" contract="IMetadataExchange" name="siebel" />
	<endpoint binding="oracleEBSBinding" contract="IMetadataExchange" name="oracleebs" />
	<metadata>
		<policyImporters>
		</policyImporters>
		<wsdlImporters>
		</wsdlImporters>
	</metadata>
</client>

A few gotchas :

1. Make sure the version you entered in machine.config is the same as the version you installed, to check the version of installed dlls, in C:\Windows\assembly, looking for Microsoft.Adapters.Sql etc, if you have not installed Adapter Pack, you will not be able to find these adapter dlls
2. When you manually modify the machine.config, you might have done through copy and paste the configuration changes into your machine.config from a web page, make sure the quotes and comma are right when you paste them into machine.config.

Update 20/04/2012:

Installationof Biztalk Server 2010 Adaptors Pack on Windows Web Server 2008 R2 64bit does not register bindings of adaptors either, you will have to same modifiction of machine.config.

In a server condition, when you try to config a depoloyed sqlbinding adaptor, the error is:
binding not found: sqlBinding

noSqlBinding

noSqlBinding

And machine config file is at
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config

It does not need restart of server

Tags:

This entry was posted on Sunday, April 1st, 2012 at 11:17 pm and is filed under ASP.NET. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

2 Responses to “No valid adapters installed”

  1. Åsa says:

    Thank You so very much!

  2. Petri Borgenhag says:

    Thanks! saved me at last.

Leave a Reply

*