Every BizTalk developer knows that assemblies used by BizTalk must reside in the Global Assembly Cache and hence must be strong-named. As such, if you are using an assembly that reads a config section then in the BTSNTSvc.exe.config, you must specify the specific type of assembly in the GAC that will be used to read that section.
Taking SubSonic for example. the config section should read like:
<configSections>
<section name="SubSonicService" type="SubSonic.SubSonicSection, SubSonic, Version=2.0.0.1, Culture=neutral, PublicKeyToken=3db15eb857a3cee5" allowDefinition="MachineToApplication" restartOnExternalChanges="true" requirePermission="false"/>
</configSections>
And the SubSonicService section should be:
<SubSonicService defaultProvider="TestProvider">
<providers>
<add name="TestProvider" type="SubSonic.SqlDataProvider, SubSonic, Version=2.0.0.1, Culture=neutral, PublicKeyToken=3db15eb857a3cee5"
connectionStringName="ConnectionString"
generatedNamespace="Test.DataAccess"/>
</providers>
</SubSonicService>
The Version, Culture and PublicKeyToken must be specified. If not, BizTalk won’t be able to find the assembly and will report an error saying something like “it could not load assembly or file”.
To find out the version and PublicKeyToken of any assembly in the gac, simply go to C:\windows\assembly

You can download SubSonic here. Generate your own snk file, compile it, then off you go!
Print | posted on Thursday, June 14, 2007 6:48 AM