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))
- Correct 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=3.0.1.0, 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=1.0.0.0, Culture=neutral, PublicKeyToken=776eb620b83c3d30> failed to load. Verify the schema for this document specification is deployed and is in the Global Assembly Cache.”
📝 One-Minute Brief
This troubleshooting guide addresses a common BizTalk Server error where the XML Disassembler fails to load a document specification (schema). While standard fixes involve verifying GAC deployment and restarting host instances, this post highlights a critical, often-missed step: if you are using Isolated Hosts (via WCF or SOAP adapters), you must also restart the IIS Application Pool to reflect assembly
Cause
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
Solution
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 the BizTalk Project correctly 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 the 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 that is usually not referenced!
If you are using a Request-Response Port, normally using a WCF or SOAP adapter, making a restart only to the Host Instances is not enough. This type of port is running over BizTalkServerIsolatedHost, so you also need to restart the App Pool associated with your services.
Hope you find this helpful! If you liked the content or found it useful and would like to support me in writing more, consider buying (or helping to buy) a Star Wars Lego set for my son.
HI Sandro,
I tried all the above but still receiving this message. Do you think any third party installation on the server can stop dlls being loaded from GAC