When trying to help a friend of mine configure a dynamic SOAP Adapter Solicit-Response port, some like this:
WSSAPCreatePO_Send(SOAP.ClientConnectionTimeout) = 300000;
WSSAPCreatePO_Send(BTS.RetryCount) = 3;
WSSAPCreatePO_Send(BTS.RetryInterval) = 15000;
We got this strange error when trying to compile the project:
“identifier ‘RetryCount’ does not exist in ‘myprojectnamespace’; are you missing an assembly“
My friend actually found what the problem was and kept me track of the solution (for that, thank you), which I found quite interesting to share with you all.
📝 One-Minute Brief
This post addresses a specific compilation error in BizTalk Server projects where the identifier ‘RetryCount’ (or other BTS properties) cannot be found. The cause is a namespace collision: if your project namespace ends with “.BTS”, the compiler looks for properties within your project rather than the standard Microsoft BizTalk schemas. Sandro explains why you should avoid using reserved keywords like “BTS” in namespaces and provides the simple solution of renaming your project namespace to resolve the conflict.
Cause
This problem occurred because the namespace of the solution that was used was something like this:
- ‘CompanyName.Project.Module.BTS‘.
This problem occurs because we used a special keyword in the namespace used by BizTalk: “BTS”, and when we try to compile the project, the compiler is trying to get the property RetryCount from the namespace of the BizTalk project: ‘CompanyName.Project.Module.BTS’ instead of the namespace BTS associated with Microsoft.BizTalk.GlobalPropertySchemas assembly
Solution
To solve this problem, just rename the namespace of your project, eg:
- ‘CompanyName.Project.Module’
- ‘CompanyName.Project.Module.Bts’
I don’t recommend the last one, and I suggest you never use special keywords in your project namespaces.
Hope you find this helpful! If you liked the content or found it useful and would like to support me in writing more, consider buying (or helping to buy) a Star Wars Lego set for my son.