Got this error when importing a series of 5 SendPorts into a newly created BizTalk application:
Failed to update binding information. (mscorlib).
Object reference not set to an instance of an object. (Microsoft.BizTalk.ExplorerOM).
My solution was that I needed to make a reference from the new application, to an existing application, which contained schemas, maps, etc.. used by these send ports. Basically, one of our developers needed a copy of the send ports to post data to the DEV database; so I exported my binding files, deleted everything except the 5 SQL SendPorts, then tried to import them into a new application to keep them separate.
On the other hand, you can use normal FTP, but use some type of encryption that can be managed by your pipeline.
However, even with SFTP or encryption, that means that the security is maintained in BizTalk, and some companies are not happy about that. You also have to consider how you test, and whether for example in your test environment, you use different passwords and encryption keys, making the deploy slightly more complicated.
These enterprise level FTP tools also handle details like backup. Many companies, for legal reasons, want to keep a snapshot (archive) of every file that was sent or received.
With companies that use this software, all the FTP and firewalls are handled by another group, and BizTalk simply uses the file adapter. You just need the directory paths from the group that manages all the FTP software.
Back in 2009, I did a short BizTalk project that used Host Initiated Processing (aka “HIP”). This is one of the five features of Host Integration Server (HIS). Starting with the BizTalk 2009 release, HIS is no longer sold separately, and can only be obtained along with a BizTalk license.
HIP – Host Initiated Processing – CICS transactions send a request to BizTalk for a response, example, a CICS program calls a COBOL subroutine, which in turns talks to BizTalk, which could run an orchestration and call an external web service.
WIP – Windows Initiated Processing – Windows sends a request to CICS and waits for a response.
DB2 – Ability to read/update DB2 database tables.
Host Files – Ability to read/write VSAM files
TI – Transaction Integration – Remote control of CICS screens.
We have several deployment scripts that have to run on both 32-bit and 64-bit environments. Until now, we just modified the script with a “replace all’ command for the 64-bit, which had to use “C:Program Files (x86)” instead of the traditional “C:Program Files” directory.
This was my first attempt:
if %BTDFProgFiles%=="" set BTDFProgFiles="%programfiles%"
rem Then run the desired program
%BTDFMSBuildPath% "%BTDFProgFiles%ABC.Common%2DeploymentABC.Common.BizTalk.Deployment.btdfproj" /p:%PARMS% /l:FileLogger,Microsoft.Build.Engine;logfile="%BTDFProgFiles%ABC.EC.Common%2DeployResults
Then later, I was finding the quotes weren’t working, so this was the fix:
IF (%1) ==() GOTO NOPARM1
IF (%2) ==() GOTO NOPARM2
IF EXIST "%windir%Microsoft.NETFrameworkv3.5MSBuild.exe" (
) ELSE IF EXIST "%windir%Microsoft.NETFrameworkv2.0.50727MSBuild.exe" (
if "%BTDFProgFiles%"=="" set "BTDFProgFiles=%programfiles%"
rem Then run the desired program
%BTDFMSBuildPath% "%BTDFProgFiles%ABC.Common%2DeploymentABC.Common.BizTalk.Deployment.btdfproj" /p:%PARMS% /l:FileLogger,Microsoft.Build.Engine;logfile="%BTDFProgFiles%ABC.EC.Common%2DeployResultsDeployResults.txt"
If you get this mysterious error in a BizTalk orchestration:
Value cannot be null. Parameter name: val
If you are running an orchestration, then a potential problem is that you tried to set a “distinguished field” to the value of NULL.
How I hit this error today ? I had a config parm from the BTNTSVC.exe.config file, that the orchestation was using to set the distinguished field. I thought the parm was optional, so I removed it from the config file. Then “BOOM” – the orchestration that had been working for months quit working with the “mystery error” above.
So now, I check for the config parm, and if it’s null, I reset it to an empty string.
May 17, 2017 Pipeline C# ReplaceString Issue
Value cannot be null. Parameter name: oldValue
Today, this happened in a pipeline component. Due to a logic error, a field had a value of Null, and it was being passed to a C# ReplaceString function as the “oldValue”. The oldValue parm can be an empty string, but it cannot be null.
Former link was moved by MSDN: http://msdn.microsoft.com/en-us/library/34149zk3.aspx
“Beginning with the .NET Framework version 4, the Assembly Cache Viewer (Shfusion.dll) is obsolete and has been removed. Use Gacutil.exe (Global Assembly Cache Tool) to view and manipulate the global assembly cache.”
Exception type: InvalidOperationException
Target Site: System.Object Deserialize(System.Xml.XmlReader,
The following is a stack trace that identifies the location where the
I was using the BizTalk orchestration xpath command, like this:
myString = xpath(myMessage,myXpath);
The problem was, that I forgot to wrap the xpath with the string() function, like this:
I got this error today, and it was very difficult to figure out. I wasted about two hours on it.
There was a failure executing the receive pipeline: “pipeline name” Source: “Pipeline ” Receive Port: “SQLPollingWire” URI: “SQL://Server/ECData_SharedDev/4” Reason: Input string was not in a correct format.
I was using the polling of the built-in SQL adapter, and add a new element to my SQL query, and thus manually added the same element to the schema.
In the schem a, the new field w as defined as a string, not a number, so why would this blow-up in the pipeline?
The error is the same error that is thrown when you would get if you tried this: System.Convert.ToInt32(“test”).
The answer is that I did a quick-promote on it, and accidentally associated it with field in the property schema that was an “int”. Thus, when the pipeline was doing the promotion of the field, that’s when it died.
Another error solved, and more time wasted. Hope this helps if you get this error.
1. Do you already have downloads of files to be installed. This alone can take hours if you are downloading from MSDN subscription library (for example: Win2008, SQL 2008, Visual Studio, and BizTalk, and sometimes additiona prereqs an Ser). I would allow about 4-8 hours just for these downloads, but of course, you can be working on other things while they are downloading. If you are fortunate to have all these files ready to go, you will save time.
2. What are you starting with ?
a) Has someone already installed Windows for you?
b) Is IIS installed or enabled on Windows ?
c) Are you connecting to an existing SQL server, or are you going to install SQL also.
d) Is the appropriate version of Visual Studio already installed?
3. BizTalk install itself takes only about 10 minutes, but after that, you have to run the Configure utility. This usually takes 15-45 minutes, when things work well. When you have errors, and have to re-run and investigate the logs, it obviously takes longer.
Here’s a big picture example. This week, I started with “nothing”, and it took me about 3 days (part time) to install two virtual machines. One was BT2009 with SQL 2009 (not R2), and another with BT2010, VS2010, and SQL2008R2.
So when your boss asks you, “How long will it take to install BizTalk”, you can reply with some of the questions above, and hopefully give him a more intelligent answer.