<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Coding</title>
        <link>http://geekswithblogs.net/PsudoKnowledgeBase/category/8992.aspx</link>
        <description>Coding</description>
        <language>en-CA</language>
        <copyright>Geordie</copyright>
        <managingEditor>Martin.palmer@mjpalmer.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>BizTalk: Receiving Multi Part Messages</title>
            <link>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/11/27/biztalk-receiving-multi-part-messages.aspx</link>
            <description>&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;I have been working on a BizTalk project for a while now and after a bumpy start all has been going well. The current message that we are dealing with is the receipt and processing of a Purchase Order. The processing and mapping of the purchase order to the SAP orders schema went well and all I need to do was to receive the document from the customer. After a bit of a delay in getting an accurate sample message, I set to work on creating a process for receiving a PO from a Ponton server. On examining the sample message I found I was going to need to deal with receiving a Multi Part message.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;So I looked at the SDK and searched online but found very little guidance. The samples and discussion where mainly about receiving messages from the POP3 adapter. In our scenario the message will be received by HTTP then dropped to a file. It will then be archived and processed.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;How difficult can it be! 4 days latter I can answer the question. It is not easy if you have not dealt with this type of message before. So here is my guidance on this issue.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;First I have created a sample project (the files 'BizTalk - Receiving.zip' can be downloaded from &lt;a href="http://cid-96aebf00cffa01bd.skydrive.live.com/browse.aspx/.Public/Blog%20Posts"&gt;http://&lt;font face=""&gt;cid-96aebf00cffa01bd.skydrive.live.com/browse.aspx/.Public/Blog%20Posts&lt;/font&gt;) . The code, schemas, sample message, and binding file are all included. This should give you a good starting point to work out what you need to do for your project.&lt;/a&gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt"&gt;&lt;span&gt;1.&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;Sample messages. As mentioned the samples that I found were email messages. I was not sure if these samples were relevant to my project. With respect to the message it appears that BizTalk cares about the MIME 1.0, boundary and description declarations. As it happens the message I was receiving was missing all these parts. Also check out this post from Doug - &lt;a href="http://www.tech-archive.net/Archive/BizTalk/microsoft.public.biztalk.general/2006-07/msg00134.html"&gt;http://www.tech-archive.net/Archive/BizTalk/microsoft.public.biztalk.general/2006-07/msg00134.html&lt;/a&gt;. Unfortunately the final solution was not posted but it helped me get closer to a solution.&lt;/div&gt;
&lt;div style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt"&gt;&lt;span&gt;2.&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;You will need to make a Multi Part message in your orchestration. This is well covered in blogs and documentation. It is also straight forward. But here is the kicker. When are receiving multi part messages, the order you create the message parts matters!! &lt;a href="http://www.stottcreations.com/blog/inner-exception-multi-part-message-has-body-part-bodysegments-expected-body-part-mshsegment/"&gt;Eric&lt;/a&gt; did a good job of documenting this ‘undocumented’ feature.  &lt;br /&gt;
To summarize Eric’s post: The order of the message parts in displayed in VS is alphabetical, but creation order matters and may be different from what is displayed in VS. The message parts need to be created in the order they appear after the message has been split into its parts by the pipeline. The only way to determine the order of creation is to view the orchestration file in a text editor. You can find the message part order by examining the failed message in BizTalk Manager. Drill into the error, go the message tab and double click the message. The message parts should be listed on the left hand side.&lt;br /&gt;
If you are getting an &lt;a href="http://www.stottcreations.com/blog/inner-exception-multi-part-message-has-body-part-bodysegments-expected-body-part-mshsegment/"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;Inner exception: ‘Wrong BodyPartException …’ and ‘Multi-part message has body part ‘XXXXX’, expected body part ‘YYYYYY’&lt;/span&gt;&lt;/a&gt;, and everything appears to be correct, check this as a possible cause. I lost over a day trying to resolve this issue!&lt;br /&gt;
The sample application contains 2 Multi Part messages only the second one works even though they look the same in VS.&lt;/div&gt;
&lt;div style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt"&gt;&lt;span&gt;3.&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;You will need a custom pipeline. BizTalk uses the MIME component to process multi part messages. Even if the message is not a MIME message it can be processed by setting the ‘allow non MIME message’ property to true. The body part content type field is optional. Valid values are ‘text/xml ‘, ‘application/xml’… etc. The ‘Body part index’ is a 0 based index that identifies the body part by location in the message.  It took me a while to discover that I also needed to add an XML dissembler in the pipeline as well. All the message part schemas are added to the ‘Document schemas’ collection.&lt;br /&gt;
        &lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt 36pt"&gt; &lt;img alt="" width="500" height="224" src="/images/geekswithblogs_net/PsudoKnowledgeBase/MIME and XML Property.JPG" /&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;Tricks that might help:&lt;/div&gt;
&lt;div style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt"&gt;&lt;span&gt;·&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;Initially type the Multi Part message parts as System.Xml.XmlDocument. This will remove at least one area of possible error. This will allow you to identify other problems and resolve them one at a time.&lt;/div&gt;
&lt;div style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 10pt 36pt"&gt;&lt;span&gt;·&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;View the orchestration file in Notepad. Look for the definition of the multi part message. The order the parts are listed in the XML are the order the message parts were created. Remember creation order matters.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;strong&gt;&lt;u&gt;Sample Message&lt;/u&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;MIME-Version: 1.0&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;Content-Type: multipart/related; type="text/xml";&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;                boundary="_968002A2-AAE4-43E0-90D3-83461FE91020_"&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt; --_968002A2-AAE4-43E0-90D3-83461FE91020_&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;MIME-Version: 1.0&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;Content-Transfer-Encoding: binary&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;Content-Description: Header&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt; &amp;lt;?xml version='1.0' encoding='UTF-8'?&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&amp;lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&amp;lt;soapenv:Header&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&amp;lt;eb:MessageHeader xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd" eb:version="2.0" soapenv:mustUnderstand="1"&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;... Rest of the Header Message....&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&amp;lt;/soapenv:Body&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&amp;lt;/soapenv:Envelope&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;--_968002A2-AAE4-43E0-90D3-83461FE91020_&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;MIME-Version: 1.0&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;Content-Transfer-Encoding: binary&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;Content-Description: POMsg&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt; &amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&amp;lt;PurchaseOrder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PurchaseOrderV2R30" PurchaseOrderStatusType="Original" PurchaseOrderType="StandardOrder"&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;... Rest of the Purchase Order Message....&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&amp;lt;/PurchaseOrder&amp;gt;&lt;/div&gt;
&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 11pt"&gt;--_968002A2-AAE4-43E0-90D3-83461FE91020_--&lt;/span&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127428"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127428" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/PsudoKnowledgeBase/aggbug/127428.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Geordie</dc:creator>
            <guid>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/11/27/biztalk-receiving-multi-part-messages.aspx</guid>
            <pubDate>Fri, 28 Nov 2008 04:10:59 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/PsudoKnowledgeBase/comments/127428.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/11/27/biztalk-receiving-multi-part-messages.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/PsudoKnowledgeBase/comments/commentRss/127428.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Notes on Resolving BizTalk Connectivity Issues with Ponton clients</title>
            <link>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/11/14/notes-on-resolving-biztalk-connectivity-issues-with-ponton-clients.aspx</link>
            <description>&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;Notes on Resolving Connectivity Issues&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;During the first stage of the Integration project a number of challenges were encountered. Some of these obstacles could have been avoided but we chose to resolve them so that we would have a solid solution for further development.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;Challenges Encountered&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt"&gt;&lt;span&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;Server 500 error when posting messages to customer with a static port configuration and document that worked for other customers.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt"&gt;&lt;span&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;Ponton responds with an ‘Internal Storage’ Error.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt 36pt; TEXT-INDENT: -18pt"&gt;&lt;span&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;The dynamic port fails with either a 500 server error or a 204 (StatusDescription=No Content) server error.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;strong&gt;&lt;u&gt;Issue 1&lt;/u&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;After a lot of work and Microsoft’s help we tracked the first error down to the customer’s server being unable to process HTTP 1.1 messages. The customer is currently running iPlanet 6 SP 10 on a Solaris 8 with a Ponton application server running WebLogic 8.1 SP6 also running on Solaris 8. &lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;HTTP 1.1 includes chunking of messages at the HTTP level. In this case the customer’s server could not recombine the chunked message and failed with a 500 error. By default the HTTP chunking is turned on when a new static HTTP port is created in BizTalk. To turn this off click on the Configuration button in the Transport section of the Send Port’s General Property page. Under the Destination URL field there is a check box labeled ‘Enable chunked encoding’. By clearing this check box the HTTP 1.1 chunking feature will be disabled.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;NOTE:  While we were trying to resolve this issue the Microsoft tech ask me to run Microsoft Network Monitor 3.0 (NetMon) to capture the traffic so that we could determine if there was an obvious message problem. Due to the process used by NetMon it could not capture the HTTP traffic. It could however capture the HTTPS traffic. I’ve not sure why this is but it is worth noting.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;strong&gt;&lt;u&gt;Issue 2&lt;/u&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;The second issue was resolved with the assistance of Ponton. Our current customers use older versions of Ponton . Our new customer uses the 2.4 version of this product. It turned out that the use of the ‘Content-Disposition: attachment; filename="=?utf-8?B?QXR0YWNobWVudDF=?="’ property in the document header changed in the newer version. Older versions ignored this property. When we deleted this line from the header the ‘internal storage’ error was no longer raised by the Ponton server.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;strong&gt;&lt;u&gt;Issue 3&lt;/u&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;Finally when we tried to move the solution to a more dynamic design the customers server started to respond with 500 server errors again. Since the integration with our customer is over an SSL connection we contacted Ponton to see if they had a test server that uses HTTP for our analysis. When we connected with this server (Apache running on Linux) we received 204 server errors. If we tested the dynamic port with the same message against a BizTalk server running on a windows 2003 server it processed successfully.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;The Microsoft Tech again tried to use NetMon to monitor the traffic with the same results. As a result several other techniques where used to capture the traffic to understand the differences in the messages.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;By adding the following XML to the BTSNTSvc.exe.config file and running Sysinternals &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx"&gt;Debug Viewer&lt;/a&gt; we were able to monitor the traffic as it was generated in BizTalk.&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&amp;lt;configuration&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;    &amp;lt;system.diagnostics&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;        &amp;lt;trace autoflush="true" /&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;                &amp;lt;sources&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;source name="System.Net"&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                        &amp;lt;listeners&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                                &amp;lt;add name="System.Net"/&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                        &amp;lt;/listeners&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;/source&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;source name="System.Net.HttpListener"&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                        &amp;lt;listeners&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;add name="System.Net"/&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                        &amp;lt;/listeners&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;/source&amp;gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: 36pt; LINE-HEIGHT: normal"&gt;               &amp;lt;source name="System.Net.Sockets"&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                        &amp;lt;listeners&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;add name="System.Net"/&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                        &amp;lt;/listeners&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;                &amp;lt;/source&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;                               &amp;lt;source name="System.Net.Cache"&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                        &amp;lt;listeners&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;add name="System.Net"/&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                        &amp;lt;/listeners&amp;gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;/source&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;                &amp;lt;/sources&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;   &amp;lt;sharedListeners&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;add&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                 name="System.Net"&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                 type="System.Diagnostics.TextWriterTraceListener"&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                  initializeData="System.Net.trace.log"&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                 traceOutputOptions = "DateTime"&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                /&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;    &amp;lt;/sharedListeners&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;    &amp;lt;switches&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;        &amp;lt;add name="System.Net" value="Verbose" /&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;        &amp;lt;add name="System.Net.Sockets" value="Verbose" /&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;        &amp;lt;add name="System.Net.Cache" value="Verbose" /&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;        &amp;lt;add name="System.Net.HttpListener" value="Verbose" /&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;    &amp;lt;/switches&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;    &amp;lt;/system.diagnostics&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&amp;lt;/configuration&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;The first thing that was determined through this process was the default settings for a HTTP static port are not the same as those of the dynamic port. These settings were modified in an orchestration message assignment shape with the code shown below.&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;font size="2"&gt;
&lt;p&gt;PontonMessage(HTTP.EnableChunkedEncoding) = false;&lt;br /&gt;
PontonMessage(HTTP.ContentType) = "multipart/related; type=\"text/xml\"; start=ebxml-header; boundary=\"_00000000-0000-0000-0000-000000000000_\"";&lt;br /&gt;
PontonMessage(HTTP.UseHandlerProxySettings) = true;&lt;br /&gt;
PontonMessage(HTTP.AuthenticationScheme) = "Anonymous";&lt;/p&gt;
&lt;/font&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;Addressing these differences was the first place that we tried to resolve the issue. Unfortunately this did not resolve the problem.&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;The final test we did was to use a network sniffer called 'WireShark' to monitor the traffic. This allowed the text comparison of a static and a dynamic message. From this comparison the only differences were the date stamps, unique ID and the quotes around the content type parameters as shown below.&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;Dynamic Message:&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;Content-Type: multipart/related; type=’text/xml’; start=ebxml-header; boundary=’_00000000-0000-0000-0000-000000000000_’&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;The non Windows server required the quotes to be double quotes and could not process the message if single quotes were used. As a result the code int the Orchestration expression shape was changed as shown below.&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;From:&lt;br /&gt;
PontonMessage(HTTP.ContentType) = “multipart/related; type=’text/xml’; start=ebxml-header; boundary=’_00000000-0000-0000-0000-000000000000_’”;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;To:&lt;br /&gt;
PontonMessage(HTTP.ContentType) = "multipart/related; type=\"text/xml\"; start=ebxml-header; boundary=\"_00000000-0000-0000-0000-000000000000_\"";&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;I hope this helps other people.  This has been an interesting ride for me.  Integration with non Microsoft systems can result in some unexpected problems.&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127040"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127040" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/PsudoKnowledgeBase/aggbug/127040.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Geordie</dc:creator>
            <guid>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/11/14/notes-on-resolving-biztalk-connectivity-issues-with-ponton-clients.aspx</guid>
            <pubDate>Fri, 14 Nov 2008 19:00:14 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/PsudoKnowledgeBase/comments/127040.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/11/14/notes-on-resolving-biztalk-connectivity-issues-with-ponton-clients.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/PsudoKnowledgeBase/comments/commentRss/127040.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Getting Document Values from Repeating Nodes in BizTalk</title>
            <link>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/11/13/getting-document-values-from-repeating-nodes-in-biztalk.aspx</link>
            <description>&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;To access a variable in a document in BizTalk is quite easy. First you go to the schema of the document and right click on the value you want to promote. Select Promote -&amp;gt; Show Promotions. To promote the variable as a distinguished property simply click the add button. If you messages are in a separate project make sure you build the solution before continuing. Accessing the promoted property in the orchestration is a simple process. Typing the message name, that represents the schema, in an expression shape. Intellisense will then guide you the rest of the way.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;Now try that if the document variable that you require can have multiple values. As soon as you try to promote the field BizTalk will refuse to continue displaying the following dialog.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;img height="103" width="628" alt="" src="/images/geekswithblogs_net/PsudoKnowledgeBase/BTMultiNodeMsg.JPG" /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;Currently I’m in the situation where I need that variable to start my mapping process. To get over this problem I have written a helper function is C#. The class is easily accesses from the orchestration. Simply reference the helper class project in the project that contains the orchestration. &lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;using&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; System;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;using&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; System.Collections.Generic;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;using&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; System.Text;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;using&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; System.Xml;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;using&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; Microsoft.XLANGs.BaseTypes;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;using&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; System.Configuration;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;using&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; System.IO;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;namespace&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; CustomerIntegration2.PAPINET.MessagingSupport&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;    &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Helper&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;    {&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;… &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;In an expression shape reference the helper class as shown below&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;CustomerNumber = CustomerIntegration2.PAPINET.MessagingSupport.Helper.GetCustomerID()&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Arial"&gt;To allow the method to do its work it needs the message data.  To achieve this I’m using an XPath query to grab the section of the message I need to process.  In this case I’m also passing in mapping data as I need to convert the value to a customer ID.  ‘BuyerDoc’ is a declared variable, of type System.Xml.XmlDocument, in the orchestration.&lt;br /&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Arial"&gt;BuyerDoc = xpath(PAPINetPO, "/*[local-name()='PurchaseOrder']/*[local-name()='PurchaseOrderHeader']/*[local-name()='BuyerParty']");&lt;br /&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127011"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127011" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/PsudoKnowledgeBase/aggbug/127011.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Geordie</dc:creator>
            <guid>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/11/13/getting-document-values-from-repeating-nodes-in-biztalk.aspx</guid>
            <pubDate>Thu, 13 Nov 2008 23:48:16 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/PsudoKnowledgeBase/comments/127011.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/11/13/getting-document-values-from-repeating-nodes-in-biztalk.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/PsudoKnowledgeBase/comments/commentRss/127011.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Documenting C# Code</title>
            <link>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/11/04/documenting-c-code.aspx</link>
            <description>&lt;p&gt;An interesting application I was shown for documenting C# code is called &lt;a target="_blank" href="http://www.roland-weigelt.de/ghostdoc/"&gt;Ghost Doc&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Roland's summary of the tool:- GhostDoc is a free add-in for Visual Studio that automatically generates XML&lt;br /&gt;
documentation comments for C#. Either by using existing documentation inherited&lt;br /&gt;
from base classes or implemented interfaces, or by deducing comments from&lt;br /&gt;
name and type of e.g. methods, properties or parameters.&lt;br /&gt;
 &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126612"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126612" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/PsudoKnowledgeBase/aggbug/126612.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>PsudoKnowledgeBase</dc:creator>
            <guid>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/11/04/documenting-c-code.aspx</guid>
            <pubDate>Tue, 04 Nov 2008 15:30:30 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/PsudoKnowledgeBase/comments/126612.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/11/04/documenting-c-code.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/PsudoKnowledgeBase/comments/commentRss/126612.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>