Recently after installing a new version of one BizTalk Application, in order to provide a new service and after having validated all the normal steps of installation:
- Check the correct installation (in BizTalk Management Console and in the Global Assembly Cache (GAC))
- Correctly Application Binding
- Restart Host instances
I keep getting this error:
“There was a failure executing the receive pipeline: “Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=18.104.22.168, Culture=neutral, PublicKeyToken=31bf3856ad364e35” Source: “XML disassembler” Receive Port: “IN_PORT” URI: “/MyService.WS/WebService_Provisioning.asmx” Reason: The document specification <Project.Schemas.MyRequest> from assembly <Project, Version=22.214.171.124, Culture=neutral, PublicKeyToken=776eb620b83c3d30> failed to load. Verify the schema for this document specification is deployed and is in the Global Assembly Cache.”
This error can happen for several reasons!!
- Your DLL was not correctly installed (not installed or missing from GAC).
- Misunderstanding in the framework version that you used.
- Forgetting to restart services so that it reflects the new changes
Because this error can happen for several reasons you may have many solutions to this problem. These are some steps that you should take to resolve the issue:
- Verify if the Assembly is correctly deployed (check if your DLL is in the BizTalk Management Console and in the Global Assembly Cache (GAC)). If the assembly was not found, you need to redeploy correctly the BizTalk Project or run gacutil to install the DLL in GAC.
- Verify if the Application Pool (in case of Service) is running and correctly configured.
- Verify the .NET Framework version of the Application Pool. If the application pool is running .NET Framework 2.0 and BizTalk solution is using other versions of .NET Framework, at runtime, it will not find the Assembly in GAC (.NET Framework version needs to be consistent.). In this case, you need to change the .NET Framework version used in the BizTalk projects or change the Framework used in the App Pool.
- Restart host instances
However, there is another step which usually is not referenced!
If you are using a Request-Response Port, normally using WCF or SOAP adapter, making restart only to Host Instances is not enough. This type of port is running over BizTalkServerIsolatedHost so you need to also restart App Pool associated with your services.