Our experience in solving “webHttp” issue

Our experience in solving “webHttp” issue

The top-secret to effective product service handling is to take each complaint seriously. Even if it’s simply a misinterpretation or a mistake on the part of the customer, every complaint deserves the wholehearted attention and special handling. In our support, we often receive tickets which require neither functional investigation nor a problem with the configuration.

Recently, we have received an interesting ticket and it took considerable time to resolve, though it looked like a simple issue to deal with. In this blog, we wanted to share the troubleshooting steps we have performed and how we solved the problem. It would help many of our customers in the future to identify the problem at first hand without spending much time.

After the successful installation of BizTalk360 in the customer environment, during the first launch, the below error message was shown in the browser.

“ERROR after first time install : The extension name ‘webHttp’ is not registered in the collection at system.serviceModel/extensions/behaviorExtensions”

solving “webHttp” issue in BizTalk360

Identifying the problem:

Firstly, BizTalk360 doesn’t require any change in the configuration file. But looking at the error clearly, it’s a configuration issue and it happened during the processing of the configuration file to service the request.  As our product is being used on critical business environments, we are generally cautious in suggesting the changes in the configuration file in the customer environment and as mentioned previously it is not required.

We started from the basic troubleshooting steps one by one.

Choosing the Solution:

Ensure “HTTP Activation” is enabled under WCF:

If the “HTTP Activation” is not enabled under the WCF services It doesn’t communicate with the HTTP network protocols over the network. Hence, we checked whether this is enabled in the “Windows roles and features Wizard”.

This option was enabled and other required roles and features were enabled as per the prerequisite document.

webHTTP issue in BizTalk360

ASP.Net re-registration/ Reinstallation:

As all the configurations are perfectly enabled, which BizTalk360 requires, we nailed down and suggested to ensure the .NET3.5 is installed properly on the machine since the error would occur only if .NET3.5 is not installed correctly. To ensure this, we recommended repairing the .NET3.5 configuration elements using the tool Workflow Services Registration(WFServicesReg.exe) using the below commands.

  1. Go to C:WINDOWSMicrosoft.NETFrameworkv3.5 
  2. Run WFServicesReg.exe /c

After repairing, BizTalk360 didn’t load and the same exception appeared.

Reregistering the ASP.Net and Service models:

The ASP.NET Registration tool can be used to install and uninstall the linked version of the ASP.NET. This tool will install the ASP.NET and update the script maps of all existing ASP.NET applications and updates both classic mode and integrate mode handlers in the IIS metabase. Hence, we suggested the below command to reregister the ASP.NET.

“%WINDIR%Microsoft.NetFrameworkv4.0.30319aspnet_regiis” –i –enable

The “ServiceModelReg.exe” tool provides an ability to manage the registering of WCF and WF components on a single machine. Since we are experiencing the problem with Service activation, we have suggested registering the components using the “Service modelReg.exe” tool by executing the below command.

“%WINDIR%Microsoft.NetFrameworkv4.0.30319ServiceModelReg.exe” -iru

Even after performing the above steps the problem still appeared in the browser while loading the BizTalk360.

Application pool Configuration verification:

It is important to make the value “true” for the property “Enable 32-bit Applications” as the machine is running on a 64-bit and it is important to access a 32-bit application running under IIS. This is because, by default, IIS launched CGI applications on 64-bit work process if you’re running it under a 64-bit Windows.

This option was set to “True” as well.

webHTTP issue in BizTalk360

Active Execution of the chosen Solution:

Always while resolving the customer solution, we shouldn’t worry about the failure. We need to concentrate on the journey that will lead you to resolve the issue. As we tried all the possible solutions to make it work, we turned our focus on the configuration files.

BizTalk360 Web.config File Investigation:

As per the default settings, all the necessary service model extensions were added as expected and they were not manipulated as shown in the below screenshot.

webHTTP issue in BizTalk360

ASP.NET 4.0 machine.config File Investigation:

We were confident, usually the machine.config file is not altered unless otherwise if there is any specific policy from the business. However, we thought of taking a look at the machine.config file for the .NET version v4.0 in the location “C:WindowsMicrosoft.NETFramework64v4.0.30319Config”.

This Final investigation made a trick and solved the problem.

How?

The “WebHttp” service model extension was manipulated with some other values than the default value in the machine.config file as highlighted in the below screenshot. After removing the additional letters. BizTalk360 loaded properly 😊!!!

webHTTP issue in BizTalk360

PS: We recommend keeping the default machine.config file as such by default. If there is any necessity to make changes in the “Machine.config” file as per any specific internal policy or rules, we recommend installing BizTalk360 on a separate server with default ASP.NET settings. So that, BizTalk360 will get loaded without any issues.

If you have any questions, feel free to contact us at support@biztalk360.com. We are happy to assist you.

Author: Mekala Ramesh

Test Lead at BizTalk360 – Software Testing Engineer having diverse exposure in various features and application testing with a comprehensive understanding of all aspects of SDLC. Strong knowledge to establish the testing process from the scratch. Love to test the software product to deliver it with good quality. Strongly believes on “Testing goes beyond just executing the test protocol”.

BizTalk Cumulative Update installation error: Cannot proceed with installation Biztalk server pack is installed

BizTalk Cumulative Update installation error: Cannot proceed with installation Biztalk server pack is installed

Cannot proceed with installation. Biztalk server pack is installed.”, it is not the first time that I encounter this problem, the first time was while I was trying to install Cumulative Update 2 for BizTalk Server 2016 ( the error that you can see in the picture below) and more recently while I was trying to install Cumulative Update 3:

Microsoft BizTalk Server 2016 CU2 [KB 4021095]

Cannot proceed with installation. Biztalk server pack is installed. Please install Cumulative Update for BizTalk Server Feature Pack.

Cannot proceed with installation Biztalk server pack is installed

Cause

There is this new “kid on the block” that was introduced by the BizTalk Server Product group in BizTalk Server 2016 that is call “BizTalk Server 2016 Feature Pack”.

Microsoft will use feature pack approach as a way to provide new and non-breaking functionalities to the product at a faster pace without the need for you to wait 2 years for the next major release of the product to have new features.

However, until know – Cumulative Update 3 for BizTalk Server 2016 – the Cumulative Updates are not aligned with the feature pack. And when I say: “Cumulative Updates are not aligned with the feature pack” I mean that when Microsoft releases a new BizTalk Server Cumulative Update:

  • it will not be compatible with Feature Pack 1
  • you can only install it on environments without BizTalk Server Feature Pack 1 installed, otherwise you will receive the error described above.
  • you need to wait a few more days/weeks for Microsoft release a new update of BizTalk Server Feature Pack 1 with the Cumulative Update included

At least based on the history until now:

I do not know if this behavior will change in future versions of Cumulative Updates, I hope it does and all the new CU’s will be compatible with FP1.

Important Note: as an additional note, currently if you want to install FP1 you will be forced to install Cumulative Update 3 for BizTalk Server 2016 because it is now part of the Feature Pack… so you cannot install FP1 without it.

Solution

Of course, currently, this is a false issue because Microsoft already released an updated version of Feature Pack 1 with the latest CU. But if this behavior continues to occur in future CU’s versions, you have two options:

  • Abdicate the Feature Pack by uninstalling it. And then you will be able to update your BizTalk Server environment with the latest fixes.
  • Be patient, and wait a few days/weeks until Microsoft release an updated version of the Feature Pack compatible with the latest CU.
Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.

BizTalk Server Configuration error: The backup file could not be created. (SSO)

BizTalk Server Configuration error: The backup file could not be created. (SSO)

Some clients have restricted rules regarding what to install content in the C (the default) hard drive. For some of them, C drive is just for the operating system and other component related to the operating system. All the rest should be installed or kept in different hard drives.

The goal of this post is not to say if that is the proper and best approach or not is just to document this error and know the reason and what to do. Personally, I usually install BizTalk Server in C (the default) hard drive, that is why I never encounter this error/warning before.

So, during one of my recent installations, where I have the need to install and kept all BizTalk Server installation and configuration components on a non-default (C:), I encounter the following error message while trying to configure the local of the Backup file location of the SSO Master Secret Key:

TITLE: Microsoft BizTalk Server Configuration Wizard
——————————
The backup file could not be created. (SSO)

For help, click: http://go.microsoft.com/fwlink/events.asp?ProdName=Microsoft+BizTalk+Server+2016&ProdVer=3.12.774.0&EvtSrc=SSO&EvtID
——————————
ADDITIONAL INFORMATION:
(0x80070003) The system cannot find the path specified.
(Win32)

For help, click: http://go.microsoft.com/fwlink/events.asp?ProdName=Microsoft+BizTalk+Server+2016&ProdVer=3.12.774.0&EvtSrc=Win32&EvtID
——————————
BUTTONS:
OK
——————————

BizTalk Server Configuration Wizard: The backup file could not be created. (SSO)

Cause

I don’t know if this can be considered an error or actually a bug in the BizTalk Server Configuration Wizard because, for me, the wizard should be responsible for creating the specified path.

By default, the SSO Master Secret Key Backup file location is set as C:Program FilesCommon FilesEnterprise Single Sign-On with the following name structure “SSO****.bak”:

  • where **** is a randomly generated name by the BizTalk Server Configuration Wizard.

The BizTalk Server Configuration Wizard has an option for you to open an annoying Folder Browser Dialog windows that force you to iterate through a Directory Tree (you cannot manually set the path) instead of using a more fancy, elegant and practical dialog box or way to archive the same result, like, suing SaveFileDialog component instead

So, if you try to manually set the path according to your requirement, for me it was just changing the hard drive letter from C: to E: you need to be sure to first manually create the full folder path on the desired destination hard drive, otherwise, you will get this problem.

Solution

Make sure the folder path is created on the desired hard drive, if not create it before you specify the path in the BizTalk Server Configuration Wizard tool.

If you already specify the path in BizTalk Server Configuration Wizard, that is, before you have created the folder:

  • Create folder path on the desired hard drive
  • And refresh the Enterprise SSO Secret backup page

and the backup file could not be created. (SSO) error message will be gone.

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.

DTA Purge and Archive (BizTalkDTADb) job: Procedure or function dtasp_PurgeTrackingDatabase has too many arguments specified. [SQLSTATE 42000] (Error 8144). The step failed.

DTA Purge and Archive (BizTalkDTADb) job: Procedure or function dtasp_PurgeTrackingDatabase has too many arguments specified. [SQLSTATE 42000] (Error 8144). The step failed.

I normally advise my clients or partners to “religious” follow the order and steps of my BizTalk Server Installation and Configuration guide, an advice that I also take into consideration for myself, not because following the exact order of the steps are mandatory, some of them are but other don’t, but because if you follow that “recipe” you will end up with a successfully BizTalk Server installation better optimized than the default and normal installations without encountering errors.

Despite all of my warning I am also human and make “mistakes” of not following the order of some steps to try to agile the BizTalk Server configuration/optimization process and a few weeks ago, while installing multiple machines in several environments at the same time we encountered a “new” problem after we configured the DTA Purge and Archive (BizTalkDTADb) job. When we try to execute the DTA Purge and Archive (BizTalkDTADb) job it failed with the following error message:

Executed as user: <servicename>. Procedure or function dtasp_PurgeTrackingDatabase has too many arguments specified. [SQLSTATE 42000] (Error 8144). The step failed.

DTA Purge and Archive (BizTalkDTADb) job: dtasp_PurgeTrackingDatabase has too many arguments specified

Cause

The error message is very clear “… dtasp_PurgeTrackingDatabase has too many arguments specified…” but my first instinct was to say “Impossible!”. I been using the same job configuration from last 10 years in all my environments successfully so why this is failing?

Then I realize that I recently updated my guide to improving the DTA Purge and Archive (BizTalkDTADb) job to be able to automatically delete orphaned BizTalk DTA service instances.

This is a new extra feature that the BizTalk Product group release with:

The “traditional” contract of the stored procedure is to have six parameters that you must configure:

  • @nHours tinyint: Any completed instance older than (live hours) + (live days) will be deleted along with all associated data.
  • @nDays tinyint: Any completed instance older than (live hours) + (live days) will be deleted along with all associated data. The default interval is 1 day.
  • @nHardDays tinyint: All data older than this day will be deleted, even if the data is incomplete. The time interval specified for HardDeleteDays should be greater than the live window of data. The live window of data is the interval of time for which you want to maintain tracking data in the BizTalk Tracking (BizTalkDTADb) database. Anything older than this interval is eligible to be archived at the next archive and then purged.
  • @dtLastBackup: Set this to GetUTCDate() to purge data from the BizTalk Tracking (BizTalkDTADb) database. When set to NULL, data is not purged from the database.

Normally the step will be configured like this:

declare @dtLastBackup datetime set @dtLastBackup = GetUTCDate() exec dtasp_PurgeTrackingDatabase 1, 0, 1, @dtLastBackup

But with the CU’s described above there is an additional parameter that you can use:

  • @fHardDeleteRunningInstances int = 0: if this flag is set to 1 we will delete all the running service instances older than hard delete days. By default, this new parameter is set to 0

So now the configuration that I normally use is like this:

declare @dtLastBackup datetime set @dtLastBackup = GetUTCDate() exec dtasp_PurgeTrackingDatabase 1, 0, 1, @dtLastBackup, 1

Note: After you install this update, you must manually update the DTA Purge and Archive job definition to pass the additional parameter @fHardDeleteRunningInstances if you want to clean up running service instances that are older than @nHardDeleteDays. By default, this new parameter is set to 0. This continues the current behavior. If you require the new behavior, set this parameter to 1.

My problem was that I was already using this new configuration without installing any CU in our brand-new BizTalk Server 2016 installation

Solution

Of course, you should review the job configuration to see if you properly set all the stored procedure parameters if the script.

But in our case, Installing the most recent cumulative update solved the issue.

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.

Microsoft Integration Weekly Update: Oct 9, 2017

Microsoft Integration Weekly Update: Oct 9, 2017

Do you feel difficult to keep up to date on all the frequent updates and announcements in the Microsoft Integration platform?

Integration weekly update can be your solution. It’s a weekly update on the topics related to Integration – enterprise integration, robust & scalable messaging capabilities and Citizen Integration capabilities empowered by Microsoft platform to deliver value to the business.

If you want to receive these updates weekly, then don’t forget to Subscribe!

On-Premise Integration:

Cloud and Hybrid Integration:

Feedback

Hope this would be helpful. Please feel free to let me know your feedback on the Integration weekly series.

Advertisements

BizTalk Server Configuration error: is invalid because it contains one or more of the following characters: `~!@#$^*()+=[]{}|;’”?.

BizTalk Server Configuration error: is invalid because it contains one or more of the following characters: `~!@#$^*()+=[]{}|;’”?.

One of the first steps, while you are trying to configure BizTalk Server, is to provide the “Database server name” on the BizTalk Server <version> Configuration page. So far nothing new. However, in one of my recent BizTalk Server installations where we were using a SQL Server that was configured with a non-default port (1433), we encountered this bizarre problem:

BTS2016LAB01, 3431 is invalid because it contains one or more of the following characters: `~!@#$^*()+=[]{}|;’”<>?.

BizTalk Server sql server name is invalid because it contains one or more of the following characters

Cause

Well, the reason is obvious for all but in this case, a little stupid considering the current days. Of course, we all can understand that the special characters are not allowed and we cannot use it.

But was not our case, we are not using any special characters in the Database server name and if you check carefully, we catch the error while configuring the Group, which means that we already were able to create the SSO database in the SQL Server – so the database name was valid/correct.

And if there were really special characters in the Database server name, then the configuration wizard should be smart to validate on the BizTalk Server <version> Configuration page and do not to continue with the configuration.

I personally consider this as a bug in the BizTalk Server Configuration Wizard tool because in our case the real problem and the cause of this error was that we had provided the database name with a space between the server and the port: “BTS2016LAB01, 3431”

Solution

The solution to this problem is simple, first of all, and obviously, you cannot use any of the following special characters: `~!@#$^*()+=[]{}|;’”<>?. under the Database Server Name.

In our case, the solution was simple also, we just need to remove the empty space on the Database Server Name: “BTS2016LAB01,3431”

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.

You asked, we attended: ServiceNow Notification Channel Enhancement

You asked, we attended: ServiceNow Notification Channel Enhancement

Support service is one facet of business that is important to every business, regardless of industry, it is vital to delivering the best service possible to all customers.

To deliver a great product service that builds customers confidence, you must pay attention to customer feedback. Customers are a wealth of information and they can help to develop a better product.

Notifications give users confidence about the environment health status and if there is any problem they can take immediate action to solve it. BizTalk360 being a one platform solution for monitoring the BizTalk Servers, it supplies quick integration with ServiceNow, Slack, Microsoft Teams, Webhook, apart from the default notification mediums – Emails and SMS. The integration is not restricted to just these channels, it is open to the customers. They can create their own custom notification channels which they use for work.

The above said Notification channels are by default bundled with BizTalk360 and make the customer life easier and not to spend much time on configuration. You can set up different alarm types (Threshold, Regular Health check, Data Monitoring) from BizTalk360 user interface and integrate with the desired Notification channels on which you want to receive the alerts.

In this article, we will be looking at the ServiceNow integration and how we have improved it in the upcoming BizTalk360 v8.6 release.

What are ServiceNow Integration’s existing fields?

In our upcoming Version 8.6 release, we have improved the ServiceNow notification channel based on the customer feedback, so here it is! For any ticketing system, the fields which are available will help the support personnel to determine the nature of the ticket and make the corrective action in a timely manner. Till V8.5 default ServiceNow notification channel has the below three fields.

  1. Short Description
  2. Impact
  3. Urgency

ServiceNow Notification channel in BizTalk360

From V8.6 version onwards we have added the following fields to help our customer’s precisely keep track of changes happening up to the minute in their environment. By using these new fields, they can configure the additional information about the ticket from BizTalk360.

  1. Assignment Group
  2. Category
  3. Sub Category
  4. Configuration Item
  5. Additional comments

ServiceNow Notification channel in BizTalk360

What happens during the Migration?

After the migration from earlier versions to v8.6, users can continue to work on the old template without any problem.

Let’s consider the below scenario:

A customer is using BizTalk360 version 8.4 presently and have configured 10 Alarms in their environment for monitoring and enabled the default ‘ServiceNow’ notification channel for sending the alerts. After the migration to the new version 8.6, there won’t be any change in the existing configuration in the alarms level. It will have the same configuration with the default 3 fields as such in V8.5

Once the user reconfigures the ServiceNow channel in Settings->Monitoring Notification->Manage Notifications channel, new changes will be applied. As per the configuration in BizTalk360, alert in ServiceNow channel will have the following fields.

ServiceNow Notification channel in BizTalk360

ServiceNow Notification channel in BizTalk360

Happy Migrating and try out the fresh installation once the release is announced!!! We are always happy to receive the customer’s feedback. Please write to support@biztalk360.com.

Author: Mekala Ramesh

Test Lead at BizTalk360 – Software Testing Engineer having diverse exposure in various features and application testing with a comprehensive understanding of all aspects of SDLC. Strong knowledge to establish the testing process from the scratch. Love to test the software product to deliver it with good quality. Strongly believes on “Testing goes beyond just executing the test protocol”.

BAM Operation Using Command Prompt

BAM Operation Using Command Prompt

This blog helps to perform various operations with BAM views using the command prompt such as:

  • deploy BAM Views
  • remove BAM definitions
  • authorize user accounts for BAM View

First, I have created a BAM view named as “BAMOperation” with the Activities Order and Status with items as shown below.

Business Activity Monitoring BAM Operation Using Command Prompt

Business Activity Monitoring BAM Operation Using Command Prompt

The BAM management utility deployment command line tool, bm.exe., allows to apply, modify, and remove BAM definitions. You can use, amongst others, below commands:

  • deploy-all – Deploys a BAM definition
  • remove-all – Removes a BAM definition
  • update-all – Updates a BAM definition
  • add-account – add accounts on BAM definition

Deploy a BAM View and Activities

The BAM Definition file (BAMOperation.xml) becomes deployed using the BAM Command line utility.

Deploying of BAM definition file will create corresponding database tables, views, etc., which will organize the data in a relational view. Follow the below steps to deploy a BAM View:

  1. Open Command Prompt as administrator
  2. Navigate to BizTalk Server Installation path/ Tracking folder and use the below command:

bm.exe deploy-all –DefinitionFile:” <<FileLocation>> BAMOperation.xml”

Business Activity Monitoring BAM Operation Using Command Prompt

which will deploy a “BAMOperation” view in BAM Portal as shown below.

Business Activity Monitoring BAM Operation Using Command Prompt

Remove a BAM Definition

Administrators can use the remove-view / remove-activity command to remove a view and Activity from the BAM Primary Import database. Follow the below steps to remove an existing activity/view:

  1. Open Command Prompt as administrator.
  2. Navigate to BizTalk Server Installation path/ Tracking folder and use the below command.

To Remove a BAM Definition File:

bm.exe deploy-all –DefinitionFile:” <<FileLocation>> BAMOperation.xml”

Business Activity Monitoring BAM Operation Using Command Prompt

Removing a BAM definition file will remove the related tables, views, etc. which were deployed in the database and server.

Remove a BAM Activity

To remove a BAM Activity, the user needs to remove the BAM View first and then the BAM Activity they wanted to remove. Execute the below-shown command to remove the BAM View first and then the BAM Activity.

To remove a BAM View:

bm.exe remove-view -name: {view name}

Business Activity Monitoring BAM Operation Using Command Prompt

To remove a BAM Activity

bm.exe remove-activity -name: {activity name}

Business Activity Monitoring BAM Operation Using Command Prompt

The above command which will remove the specified activity alone form the database.

Update a BAM Activity

The User is also able to update an existing View/Activity. To update an Activity/ View, the user should remove the activity/view first by using the above-mentioned commands and then follow the below steps to update any changes in the existing View /Activity.

For example, I have removed the above “Status” activity and I have updated the activity as shown below.

Business Activity Monitoring BAM Operation Using Command Prompt

We then use the below command to update the changes to the existing view:

bm.exe update-all –DefinitionFile:” <<FileLocation>> BAMOperation.xml”

The above command will add a table, view in the database and it will update the previous activity in the BAM Portal as shown below.

Business Activity Monitoring BAM Operation Using Command Prompt

Add an Account to BAM Definition

Administrators use the add-account command to associate users with BAM views and protect the BAM Excel Spreadsheet views from unauthorized access. When users save BAM views, the views reference a SQL connection string that is hidden within the workbook. The workbook is protected, but you must also ensure that the document is protected.

When you associate users with BAM views, you restrict access to the views to only the users or groups to whom you grant access by using the below command.

bm.exe add-account -AccountName: DomainName UserName -View:(viewname)

Business Activity Monitoring BAM Operation Using Command Prompt

BizTalk Server 2016: Could not load file or assembly ‘Oracle.DataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342’ or one of its dependencies. The system cannot find the file specified.

BizTalk Server 2016: Could not load file or assembly ‘Oracle.DataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342’ or one of its dependencies. The system cannot find the file specified.

It is not the first time, neither will be the last that I encountered similar problems like this one or the same problem with earlier versions, we call it DLL hell (or nightmare) but I think that all BizTalk Administrator are familiar with it and vaccinated for the problem. Some months ago, while trying to communicate with an Oracle database within Visual Studio in a brand-new BizTalk Server 2016 Developer environment to generate the proper Schemas, we faced with the following Oracle.DataAccess problem:

Error saving properties.
(System.ArgumentException) Invalid binding.
(System.IO.FileNotFoundException) Could not load file or assembly ‘Oracle.DataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342’ or one of its dependencies. The system cannot find the file specified.

Could not load file or assembly Oracle.DataAccess Version 4.121.1.0

Cause

When installing the Oracle WCF Adapter for BizTalk Server 2016 there is a design-time requirement to use Oracle.DataAccess Version 4.121.1.0.

BizTalk Server 2016 requires that specific Oracle.DataAccess version, however, us we were able to very on the GAC, the DLL that existed in our environment had a different version.

Trying to find the correct ODP.NET 11.2.0.1.2 version under Oracle website can be a challenge

Note: depending on the BizTalk Server version that you are using, this the required Oracle.DataAccess version may change.

Solution

Trying to find the correct ODP.NET 11.2.0.1.2 version under Oracle website can be a challenge, so one of the easier and fast ways to solve this problem is using Assembly Binding Redirection in the machine configuration file (Machine.config):

  • 32-bit: c:WindowsMicrosoft.NETFramework[version]configmachine.config
  • 64-bit: c:WindowsMicrosoft.NETFramework64[version]configmachine.config

Note: You should apply this in both 32 and 64-bit machine configuration files.

By using the <assemblyBinding> Element for <runtime> that will contain all the information about assembly version redirection and the locations of assemblies.

In this case, you should apply the following configurations:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Oracle.DataAccess"
         publicKeyToken="89b483f429c47342" />
      <bindingRedirect oldVersion="4.121.1.0" newVersion="x.xxx.x.x" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

By doing this when BizTalk Server will look to the Oracle.DataAccess version which not exists in your environment, it will be redirected to the existing DLL version.

For example, in our case we used:

<!--<runtime />-->
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" />
        <bindingRedirect oldVersion="4.121.1.0" newVersion="4.121.2.0" />
      </dependentAssembly>
   </assemblyBinding>
</runtime>

Just to be on the safe side, you should add this configuration in both 32 and 64-bit in .NET Framework 2.0 and 4.0 machine configuration files.

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.