Another error and warnings, cause and solutions blog post. This time on a small issue that I got during an application configuration in a developing environment.
Well, I think I will not tell you anything new, but when you are generating Schemas from a SQL database, regardless of whether they are actions directly on tables or invoking stored procedures, a binding file is automatically created on your BizTalk Server Visual Studio solution. And you can use it to easily create the necessary ports to communicate with your SQL database. You don’t need to create them manually.
On one of these occasions, as I did thousands of times before, I successfully import my binding file containing the receive ports for my SQL database. But to my surprise every time I was trying to open the port configuration to change the attributes, I was getting the following error:
Error loading properties. (System.Configuration.ConfigurationErrorsException) Unrecognized attribute ‘Attribute-Name’. Note that attribute names are case-sensitive.
For a better context, why this error was happening, I was working with the BizTalk Server 2013 R2 version.
Although I didn’t initially understand why it happened, the error is quite clear. The attribute name, in my case ApplicationIntent was invalid.
Only thing I was sure:
- It wasn’t a case-sensitive issue I was sure about that because this was an auto-generated binding file and the only thing I did was to change the receive port and receive location names
To demystify the problem, I ended up:
- Manually creating the receive port;
- Export the bindings;
- And compare the bindings;
And what I noticed was that the bindings were different, this last one, that was working, didn’t contain the ApplicationIntent attribute and two other additional attributes like MultiSubnetFailover attribute.
I end up realizing that, because I didn’t have access to the client and I was with limit access to my dev machines, I end up creating the Schemas and the transformations using a different version: BizTalk Server 2016.
The schemas and almost artifacts, even if you developer in a higher version, it will work well on BizTalk Server 2013 R2, you just need to compile with a different network. Nevertheless, I will not advise doing that. However, the binding files are different and not compatible between these two versions for this adapter.
The solution is easy and you have three options:
- Manually remove, fixing the binding file, for example, open in notepad and remove the ApplicationIntent=”ReadWrite”;
- I will not recommend that approach;
- You will find other issues that you need to solve;
- Regenerate the schemas and bindings in your correct Visual Studio solution;
- It may give you additional work on redeploying the solution;
- But it is the most consistent option, everything will be updated and you sure that you have all the correct resources.
- Manually create the ports on the BizTalk Server Administration Console;
- Make sure to generate the binding files and update them in our Visual Studio solution;