0
votes

I have created a local WCF service which has a method InsertOrUpdate(String) which connects to a database and insert/update the data. If I run this service with the tutorial code from here (8) and test it with the WCF Test Client from VS 2013 all works great.

Now I want to call this method via a BizTalk Server application so I have saved the WSDL file from the service and imported it into my BizTalk project via the consume WCF service wizard. Then I have created a small orchestration which looks like this:

enter image description here

The in port points to a directory on my hard drive and looks for all kinds of xml files. The out port is set as HTTP transport to http://localhost:43250/Services/MyService.svc. I have signed and deployed the BizTalk applicationon my local machine and if I put an xml file in the port directory it disappears after a short time but my service is not called. In the BizTalk Management Console I get following error:

The published message could be not forwarded because no subscribers were found. This error occurs when the subscribed orchestration or subscribed Sendeport were not registered or some necessary to check the subscription message properties were not promoted. To resolve this error, use the BizTalk Administration console.

I'm sure that the XML file is valid and the pipelines are set to XML Receive/Transmit too. Do you have any ideas why it is not working? All this happens on a locale Win 7 x64 machine.

2
Do you already configured the WCF Service as a send port on the Biztalk Admin console? - Marlon Vidal
I'm not really sure about that. How should I do that? Sorry I'm pretty new to BizTalk. - Cilenco

2 Answers

1
votes

These are the first things I would check in this situation:

0. Restart all your host instances and retest. When you deploy a Biztalk project, assemblies go in the GAC. Biztalk needs the host instances using these assemblies to be restarted or it will keep using the old ones. You actually don't need to restart all the host instances, but for the sake of simplicity, try it.

1. Make sure all your deployed items are green Go in the Biztalk administration console, make sure that:

  • the orchestration is bound is your Receive and Send port (right click-> Properties -> Bindings)
  • the orchestration is enlisted
  • the SendPort enlisted

2. Make sure your input file is right When you imported your WCF service in Visual Studio, it should have created XSD files to define the schema you can use.

Right click on the XSD file in TFS and click "Generate Instance". Now go get the file generated and use it as your input. If it works now with that file, your test file has a problem.

3. Check the subscription of your send port: Open the Biztalk admin console

  • Open "Biztalk Group", click new query and search for a "Subscription" having the same "Service Name" the same name as your Send Port
  • The subscription is a filter to decide whether a message will go through your port or be ignored.
  • If you bound your SendPort, the filter will be a Boolean expression uniquely identifying your port, using the property BTS.SPTransportID
0
votes

Does the whole process won't activate ?

Maybe your input schema doesn't match your input xml. Please validate your XML against the schema, and then redeploy your project.

Make sure the input port is configured to "XMLReceive", because that pipeline promotes the "MessageType" to the context.

Not sure if you should use "XMLTransmit" on the ws port.

You can also check the message subscriptions via BizTalk Administration Console.