If you use ESB Toolkit to implement an itinerary to process a message using typical messaging mechanisms to route the result to a specific endpoint, it is possible to receive the following error in the event viewer if the itinerary contains an Itinerary Service with a resolver included:
"The Messaging engine failed to process a message submitted by adapter:SOAP Source URL:/ESB.ItineraryServices/ProcessItinerary.asmx. Details:The published message could not be routed because no subscribers were found. This error occurs if the subscribing orchestration or send port has not been enlisted, or if some of the message properties necessary for subscription evaluation have not been promoted. Please use the Biztalk Administration console to troubleshoot this failure."
The following image shows an example of the implementation described above.
There, the Itinerary Service named SendPortFilter configured as an Off-Ramp Extender, includes a resolver to call BRE, although the same error could happen even using static resolver implementation type.
To solve this issue is necessary to make a change on itinerary implementation. The following image shows the itinerary modified:
As you can see, the itinerary was modified to add a new Itinerary Service before the existing Off-Ramp Extender. Additionally, the resolver was removed from the extender and was included into the new Itinerary Service. It is important to take in mind the new Itinerary Service must have the following configuration:
Name: Is irrelevant. Put the name you want
Itinerary Service Extender: Messaging Extender
Container: point to the On-Ramp and its respective receive handler
Service Name: Microsoft.Practices.ESB.Services.Routing