Get 404 page not found when browsing a web service you know is there.
For example, from IIS you right-click and select “Browse” on the .svc file (so you know it is really there). NOTE: the 404 is a “red herring” an outright lie – a bad error given to us by Microsoft to confuse us.

Try checking to see if you have ASP.NET 1.1 instead of 2.0 set.
Right click your “virtual directory”, then click the “ASP.NET” tab.
.NET 2.0 and 3.5 use the same “CLR”, therefore you will see 2.0.50727 in the
ASP.NET version on this tab. If you see 1.x, then change it to 2.0.50727.

From IIS Admin, right-click the project, …

If and when you get this error on Windows 2003, there is an additional setup required.
Click “Web Service Extensions” at the bottom of IIS, and check the “ASP.NET V2.0.50727” and see if is is “allowed” instead of “prohibited”.

If you get “service unavailable”, then make sure the userid that is running your application pool (Win 2003/IIS 6) is a member of the “IIS_WPG” (IIS worker process group) and that the password is correct.

Bug Scenario: You are using C# variable in Mapping Functoids.
You run a map through “Test Map” and it works fine each time.

You run a file through a receive location, running the same map. Works great first time, but second time it maps nothing (or behaves differently). When you restart BizTalk Host Instance, it works fine first time, but not second time.

Why are we using a variable in the first place? The ideas was to map a field just one time (in a loop). So once the field is mapped, we need to set a flag not to map it again.

What is the bug in the following code?

public static bool gotCoborrowerLastname = false;

public static string CoborrowerLastname (string param1)
     string result = "false";
     if (param1.ToUpper() == "TRUE" && !gotCoborrowerLastname)
                gotCoborrowerLastname = true;
            	result = "true";

      return result;

The “static” keyword must be removed from the global variable. By making it static, only one copy of the variable is held in memory. Thus, the variable stays set to the last value, even when you run a new map. The variable does not get reset until you restart the BizTalk Host instance.

public bool gotCoborrowerLastname = false;


The Messaging Engine failed to register the adapter for “SOAP”
for the receive location

Please verify that the receive location exists,
and that

There are several reasons for this error. In my case, I took a proxy that was created by deploying an orchestration as a .asmx web service. I changed that proxy in C#, and thus the name in the above error “ImagingInterfaceLoanDataPull.asmx” did not match the field called “Virtual Name + Web Service .asmx file” name in the Receive Location. I manually changed it and it worked.

Other obvious things to look for are:

  1. Your receive port exists
  2. Your receive location is enabled