I have set up receive message and receive port to monitor for XML files. I also added expression shape to execute .NET class library by using
System.Diagnostics.Process.Start
(@"C:\TEMP\XmlReader\XmlReader\bin\Release\XmlReader.exe");
When I deploy the BizTalk, as soon as new fi开发者_Python百科le gets received on the receive location, file disappears and nothing happens. I have other orchestration project with receive and send port where the file disappears and does not move to send location
I am not sure I am following your logic. However, assuming that you have correctly set up a subscription between the orchestration and the message published by the receive port. By the time the orchestration is activated, the original file system XML is gone forever. In fact it is gone once the receive location is enabled and consumes it. So if you are trying to manually read the original XML file off the file system, from the orchestration, you will not be successful.
BizTalk has some pitfalls, when in doubt, stick to the incremental approach;
- Create/Enable the receive port and location straight from the administration console (forget VisualStudio for now).
- Pass in an XML (or whatever)
- Use the management console to see if any message were created and what their status is.
Create the orchestration that includes
System.Diagnostics.Debug.WriteLine()
statements, subscribe it to the receive port.
- Drop in a message and use DebugView to see the output from the WriteLine method calls.
If I'm not misunderstanding you, you are using a custom xmlreader.exe to read Xml documents and submit them to a BizTalk Orchestration. This is exactly what a BizTalk Receive Port + Receive Location (+ XmlPipeline) will do for you.
To me your problem looks as if your xmlreader.exe and your BizTalk Receive Port + Receive Location are working against each other.
If you have to do special processing on incoming Messages you need to create a Pipeline Component.
Check your BizTalk Admin Console - I'll bet you'll find all your received messages suspended because your Orchestration didn't pick them up.
精彩评论