<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://developers.de/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Andreas Erben's posts : SOA, Cloud Services, BPM</title><link>http://developers.de/blogs/andreas_erben/archive/tags/SOA/Cloud+Services/BPM/default.aspx</link><description>Tags: SOA, Cloud Services, BPM</description><dc:language>en</dc:language><generator>CommunityServer 2008 SP1 (Build: 30619.63)</generator><item><title>Cloudy messages / Send &amp; Receive Activities in BizTalk Workflow Services</title><link>http://developers.de/blogs/andreas_erben/archive/2008/10/02/cloudy-messages-send-amp-receive-activities-in-biztalk-workflow-services.aspx</link><pubDate>Thu, 02 Oct 2008 03:14:00 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:2861</guid><dc:creator>Andreas Erben</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/andreas_erben/rsscomments.aspx?PostID=2861</wfw:commentRss><comments>http://developers.de/blogs/andreas_erben/archive/2008/10/02/cloudy-messages-send-amp-receive-activities-in-biztalk-workflow-services.aspx#comments</comments><description>&lt;p&gt;(German version may be provided at a later stage / Deutsche Version wird gegebenenfalls nachgereicht)&lt;/p&gt;
&lt;p&gt;In previous posts, I gave an &lt;a href="http://developers.de/blogs/andreas_erben/archive/2008/08/05/clouding-the-flow-of-work-biztalk-workflow-services-intro.aspx"&gt;introduction to BizTalk Workflow Services&lt;/a&gt;, I &lt;a href="http://developers.de/blogs/andreas_erben/archive/2008/08/09/a-flow-control-in-the-cloud-flow-control-activities-amp-biztalk-workflow-services.aspx"&gt;wrote about flow control&lt;/a&gt; and rambled about &lt;a href="http://developers.de/blogs/andreas_erben/archive/2008/09/29/workflow-cloudbusting-hidden-code-amp-logic-in-conditions-workflow-foundation-and-biztalk-workflow-services.aspx"&gt;tricks you can do in conditions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This post will deal with the send and receive activities available now.&lt;/p&gt;
&lt;p&gt;BizTalk Workflow Services offer the following send and receive activities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CloudHttpReceive &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.httpReceive.png"&gt;&lt;img border="0" width="20" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.httpReceive_5F00_thumb.png" alt="System.ServiceBus.Workflow.httpReceive" height="20" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;CloudHttpSend &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.httpSend.png"&gt;&lt;img border="0" width="20" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.httpSend_5F00_thumb.png" alt="System.ServiceBus.Workflow.httpSend" height="20" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;CloudServiceBusSend &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.sbSend.png"&gt;&lt;img border="0" width="20" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.sbSend_5F00_thumb.png" alt="System.ServiceBus.Workflow.sbSend" height="20" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;CloudServiceBusSend &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.sbSend.png"&gt;&lt;img border="0" width="20" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.sbSend_5F00_thumb.png" alt="System.ServiceBus.Workflow.sbSend" height="20" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;CloudServiceBusSend &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.sbSend.png"&gt;&lt;img border="0" width="20" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.sbSend_5F00_thumb.png" alt="System.ServiceBus.Workflow.sbSend" height="20" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; was already used in the introduction post, so I will start with this.&lt;/p&gt;
&lt;h3&gt;CloudServiceBusSend &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.sbSend.png"&gt;&lt;img border="0" width="20" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.sbSend_5F00_thumb.png" alt="System.ServiceBus.Workflow.sbSend" height="20" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; with ConnectionMode RelayedMultiCast&lt;/h3&gt;
&lt;p&gt;Please look at the provided sample typically at &lt;i&gt;Program Files\Microsoft BizTalk Services SDK\Samples\Workflow\GettingStarted &lt;/i&gt;and find the activity &amp;quot;cloudServiceBusSend1&amp;quot;.&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/BizTalkServicesWorkflowGettingStarted01_5F00_2.png"&gt;&lt;img border="0" width="483" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/BizTalkServicesWorkflowGettingStarted01_5F00_thumb.png" alt="BizTalkServicesWorkflowGettingStarted01" height="721" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;The activity corresponds to the following Xoml-fragment:&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ns0:CloudServiceBusSend&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;cloudServiceBusSend1&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;URL&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;sb://connect.biztalk.net/services/ChatRooms/watchdog/MulticastService/&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Response&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;{x:Null}&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Body&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#ff0000;"&gt;&amp;amp;lt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Chat xmlns=&amp;#39;http://samples.microsoft.com/ServiceModel/Relay/&amp;#39;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;amp;gt; &amp;amp;lt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;nickName&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;amp;gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;watchdog&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;amp;lt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/nickName&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;amp;gt; &amp;amp;lt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;text&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;amp;gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;The Microsoft site is responding.&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;amp;lt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/text&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;amp;gt;&amp;amp;lt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/Chat&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;amp;gt;&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Action&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;http://samples.microsoft.com/ServiceModel/Relay/MulticastContract/Chat&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;ConnectionMode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;RelayedMulticast&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Select cloudServiceBusSend1 and look at the properties:&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/ServiceBusSendRelayedMultiCast_5F00_4.png"&gt;&lt;img border="0" width="602" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/ServiceBusSendRelayedMultiCast_5F00_thumb_5F00_1.png" alt="ServiceBusSendRelayedMultiCast" height="352" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;ConnectionMode&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;There are two implemented ConnectionModes: &amp;quot;RelayedMultiCast&amp;quot; and &amp;quot;RelayedDuplexSession&amp;quot;. &lt;br /&gt;RelayedMultiCast requires a contract that only contains OneWay operations. &amp;quot;RelayedDuplexSession&amp;quot; in contrast will theoretically allow a response, but there seems to be a bug in the present version and the response will get lost. The posted example uses the &amp;quot;RelayedMultiCast&amp;quot; ConnectionMode. It interacts with the sample &lt;i&gt;Program Files\Microsoft BizTalk Services SDK\Samples\Communication\ExploringFeatures\ConnectionModes\Multicast&lt;/i&gt;.&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;URL&lt;/strong&gt;&lt;/h4&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;a title="sb://connect.biztalk.net/services/ChatRooms/watchdog/MulticastService/"&gt;&lt;span style="color:#000000;"&gt;sb://connect.biztalk.net/services/ChatRooms/watchdog/MulticastService/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;This is the URL of the ServiceBus address you are trying to reach. A WorkflowValidator will not only check it for being not empty but also use the scheme &amp;quot;sb&amp;quot;.&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Action&lt;/strong&gt;&lt;/h4&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;a href="http://samples.microsoft.com/ServiceModel/Relay/MulticastContract/Chat" title="http://samples.microsoft.com/ServiceModel/Relay/MulticastContract/Chat"&gt;&lt;span style="color:#000000;"&gt;http://samples.microsoft.com/ServiceModel/Relay/MulticastContract/Chat&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Nothing really surprising. It is best understood though when looking at the contract of the corresponding sample&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;[&lt;span style="color:#2b91af;"&gt;ServiceContract&lt;/span&gt;(Name = &lt;span style="color:#a31515;"&gt;&amp;quot;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;&lt;em&gt;MulticastContract&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&amp;quot;&lt;/span&gt;, Namespace = &lt;span style="color:#a31515;"&gt;&amp;quot;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;&lt;em&gt;http://samples.microsoft.com/ServiceModel/Relay/&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&amp;quot;&lt;/span&gt;)]&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;interface&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MulticastContract&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;{&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color:#2b91af;"&gt;OperationContract&lt;/span&gt;(IsOneWay=&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;)]&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Hello(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; nickName);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color:#2b91af;"&gt;OperationContract&lt;/span&gt;(IsOneWay = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;)]&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; &lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;&lt;em&gt;Chat&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; nickName, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; text);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color:#2b91af;"&gt;OperationContract&lt;/span&gt;(IsOneWay = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;)]&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Bye(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; nickName);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;}&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;So, it is basically &lt;strong&gt;Namespace+Name+Operation&lt;/strong&gt;.&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Body&lt;/strong&gt;&lt;/h4&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#000000;"&gt;&amp;lt;Chat xmlns=&amp;#39;&lt;/span&gt;&lt;a href="http://samples.microsoft.com/ServiceModel/Relay/&amp;#39;"&gt;&lt;span style="color:#000000;"&gt;http://samples.microsoft.com/ServiceModel/Relay/&amp;#39;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#000000;"&gt;&amp;gt; &amp;lt;nickName&amp;gt;watchdog&amp;lt;/nickName&amp;gt; &amp;lt;text&amp;gt;The Microsoft site is responding.&amp;lt;/text&amp;gt;&amp;lt;/Chat&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;What is actually being sent. A WorkflowValidator will check if it is valid XML.&lt;br /&gt;In this example you see the outer element being named &amp;quot;Chat&amp;quot; like the operation that is going to be called on the interface with the namespace &amp;quot;http://samples.microsoft.com/ServiceModel/Relay/&amp;quot; of the ServiceContract. Then there are two string parameters, each represented by an XML-Tag corresponding to the parameter names of the operation: &amp;quot;nickName&amp;quot; with its value &amp;quot;watchdog&amp;quot; and &amp;quot;text&amp;quot; with its value &amp;quot;The Microsoft site is responding.&amp;quot;.&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Response&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;The response is empty, with RelayedMultiCast it will always stay empty even after the call (since it only involves OneWay operations) and unfortunately in the present CTP drop I found it impossible so far to be filled.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;CloudServiceBusSend &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.sbSend.png"&gt;&lt;img border="0" width="20" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.sbSend_5F00_thumb.png" alt="System.ServiceBus.Workflow.sbSend" height="20" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; with ConnectionMode RelayedDuplexSession&lt;/h3&gt;
&lt;p&gt;Let&amp;#39;s look at a slightly different configuration for this activity&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ns0:CloudServiceBusSend&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;cloudServiceBusSend1&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;URL&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;sb://connect.biztalk.net/services/andreaserben/EchoService/&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Response&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Body&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#ff0000;"&gt;&amp;amp;lt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Echo xmlns=&amp;#39;http://samples.microsoft.com/ServiceModel/Relay/&amp;#39;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;amp;gt; &amp;amp;lt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;text&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;amp;gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Original&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;amp;lt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/text&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;amp;gt;&amp;amp;lt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/Echo&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;amp;gt;&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Action&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;http://samples.microsoft.com/ServiceModel/Relay/EchoContract/Echo&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;ConnectionMode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;RelayedDuplexSession&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;with the properties being like &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/ServiceBusSendRelayedDuplexSession_5F00_2.png"&gt;&lt;img border="0" width="706" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/ServiceBusSendRelayedDuplexSession_5F00_thumb.png" alt="ServiceBusSendRelayedDuplexSession" height="340" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;ConnectionMode&lt;/span&gt;&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;As mentioned &amp;quot;RelayedDuplexSession&amp;quot; will theoretically allow a response, but there seems to be a bug in the present version and the response will get lost. This example interacts with the sample &lt;i&gt;Program Files\Microsoft BizTalk Services SDK\Samples\Communication\GettingStarted\Echo&lt;/i&gt;.&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;URL&lt;/strong&gt;&lt;/h4&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;a title="sb://connect.biztalk.net/services/andreaserben/EchoService/"&gt;&lt;span style="color:#000000;"&gt;sb://connect.biztalk.net/services/YOURWORKFLOWSERVICESUSERNAME/EchoService/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;This is the URL of the ServiceBus address you are trying to reach in this case contains your username because this is how the &amp;quot;Echo&amp;quot; sample sets up its endpoint.&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Action&lt;/strong&gt;&lt;/h4&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;a href="http://samples.microsoft.com/ServiceModel/Relay/MulticastContract/Chat" title="http://samples.microsoft.com/ServiceModel/Relay/MulticastContract/Chat"&gt;&lt;span style="color:#000000;"&gt;http://samples.microsoft.com/ServiceModel/Relay/EchoContract/Echo&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Again nothing really surprising. It is best understood though when looking at the contract of the corresponding sample&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;[&lt;span style="color:#2b91af;"&gt;ServiceContract&lt;/span&gt;(Name = &lt;span style="color:#a31515;"&gt;&amp;quot;EchoContract&amp;quot;&lt;/span&gt;, Namespace = &lt;span style="color:#a31515;"&gt;&amp;quot;http://samples.microsoft.com/ServiceModel/Relay/&amp;quot;&lt;/span&gt;)]&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;interface&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;EchoContract&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;{&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color:#2b91af;"&gt;OperationContract&lt;/span&gt;]&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Echo(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; text);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;}&lt;/p&gt;
&lt;/div&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Again it is &lt;strong&gt;Namespace+Name+Operation&lt;/strong&gt;. (Note that this is &lt;span style="text-decoration:underline;"&gt;not&lt;/span&gt; a one-way operation now.)&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Body&lt;/strong&gt;&lt;/h4&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&amp;lt;Echo xmlns=&amp;#39;&lt;a href="http://samples.microsoft.com/ServiceModel/Relay/&amp;#39;"&gt;&lt;span style="color:#000000;"&gt;http://samples.microsoft.com/ServiceModel/Relay/&amp;#39;&lt;/span&gt;&lt;/a&gt;&amp;gt; &amp;lt;text&amp;gt;Original&amp;lt;/text&amp;gt;&amp;lt;/Echo&amp;gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;The outer element is named &amp;quot;Echo&amp;quot; like the operation that is going to be called on the interface with the namespace &amp;quot;http://samples.microsoft.com/ServiceModel/Relay/&amp;quot; of the ServiceContract. Then there is the parameter &amp;quot;text&amp;quot; with its value &amp;quot;Original&amp;quot;.&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Response&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;The response is empty, here you would expect your value to show up that you get back from the ServiceBus as return values, however, it does not seem to work at the present time.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;CloudHttpSend &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.httpSend.png"&gt;&lt;img border="0" width="20" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.httpSend_5F00_thumb.png" alt="System.ServiceBus.Workflow.httpSend" height="20" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/h2&gt;
&lt;p&gt;Again look at the sample at &lt;i&gt;Program Files\Microsoft BizTalk Services SDK\Samples\Workflow\GettingStarted&amp;nbsp; &lt;/i&gt;and this time find the activity cloudHttpSend1.&lt;/p&gt;
&lt;p&gt;The activity corresponds to the following Xoml-fragment:&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ns0:CloudHttpSend&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;cloudHttpSend1&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;StatusCode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;0&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;URL&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;http://www.microsoft.com&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Method&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;GET&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Request&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;{x:Null}&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;RequestContentType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;{x:Null}&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Response&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;{x:Null}&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Select the activity and look at its properties:&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/CloudHttpSendGet_5F00_2.png"&gt;&lt;img border="0" width="437" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/CloudHttpSendGet_5F00_thumb.png" alt="CloudHttpSendGet" height="386" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;URL&lt;/strong&gt;&lt;/h4&gt;
&lt;h4&gt;&lt;/h4&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;a href="http://www.microsoft.comconnect.biztalk" title="sb://connect.biztalk.net/services/andreaserben/EchoService/"&gt;&lt;span style="color:#000000;"&gt;http://www.microsoft.com&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;The address of the resource you want to access. The WorkflowValidator will allow the Uri-Schemes &amp;quot;http&amp;quot;, &amp;quot;https&amp;quot; and &amp;quot;ftp&amp;quot;. The URL has to be given in absolute format. (The actual access is done through HttpWebRequest).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/h4&gt;
&lt;h4&gt;&lt;/h4&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;GET&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Allowed values are &amp;quot;GET&amp;quot; and &amp;quot;POST&amp;quot;.&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;RequestContentType&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;This only is being considered for the &amp;quot;POST&amp;quot;-method. An example would be &amp;quot;text/plain&amp;quot;.&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Request&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;This is only being considered for the &amp;quot;POST&amp;quot;-method. The string here will be written to the RequestStream of the HttpWebRequest by interpreting the the String as UTF8-encoded through &lt;span style="color:#2b91af;"&gt;Encoding&lt;/span&gt;.UTF8.GetBytes(REQUESTSTRING).&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;StatusCode&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;The StatusCode that the HTTP-Request receives will appear here after the call was being made.&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Response&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;The &amp;quot;Response&amp;quot; property will contain the content of the ResponseStream of the HttpWebRequest interpreted as UTF8-encoded.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There is really not much more to it, I will however try to give an end-to-end example that utilizes this activity in a bit more meaningful manner.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;CloudHttpReceive &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.httpReceive.png"&gt;&lt;img border="0" width="20" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.httpReceive_5F00_thumb.png" alt="System.ServiceBus.Workflow.httpReceive" height="20" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/h2&gt;
&lt;p&gt;CloudHttpReceive &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.httpReceive.png"&gt;&lt;img border="0" width="20" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.httpReceive_5F00_thumb.png" alt="System.ServiceBus.Workflow.httpReceive" height="20" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; is tough to impossible to figure out with the given documentation as to date.&lt;/p&gt;
&lt;p&gt;Let me first quote the documentation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;CloudHttpReceive&lt;/strong&gt;: This activity receives an HTTP request at the URI http://workflow.biztalk.net/servicesHttp/&amp;lt;UserName&amp;gt;/workflows/&amp;lt;WorkflowTypeName&amp;gt;/instances/&lt;br /&gt;&amp;lt;InstanceId&amp;gt;/&amp;lt;ActivityName&amp;gt; and returns a response. The HTTP listener uses Identity service access control and the operation name &amp;quot;Send&amp;quot; &lt;/p&gt;
&lt;p&gt;Properties &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Response: the HTTP content to send in response to the HTTP request &lt;/li&gt;
&lt;li&gt;StatusCode: the HTTP status code to return in response to the HTTP request &lt;/li&gt;
&lt;li&gt;Request: the content of the received HTTP request. This property is set by the activity when a request is received.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;It sounds easier than it is.&lt;/p&gt;
&lt;p&gt;This is the smallest possible workflow utilizing this activity:&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/MinimalHttpReceiveWf.png"&gt;&lt;img border="0" width="273" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/MinimalHttpReceiveWf_5F00_thumb.png" alt="MinimalHttpReceiveWf" height="262" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;and its corresponding Xoml-definition:&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SequentialWorkflowActivity&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x:Class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;WorkflowProject1.Workflow1&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Workflow1&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;xmlns:ns0&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;http://schemas.microsoft.com/2007/11/CloudWorkflowActivityLibrary&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/workflow&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ns0:CloudHttpReceive&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Request&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;{x:Null}&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;cloudHttpReceive1&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;StatusCode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;0&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Response&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Hello&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SequentialWorkflowActivity&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;A closer look of the Xoml-fragment of that very simple cloudHttpReceive:&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ns0:CloudHttpReceive&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Request&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;{x:Null}&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;cloudHttpReceive1&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;StatusCode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;0&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Response&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Hello&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;It corresponds to those properties:&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/CloudHttpReceiveHello_5F00_2.png"&gt;&lt;img border="0" width="446" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/CloudHttpReceiveHello_5F00_thumb.png" alt="CloudHttpReceiveHello" height="316" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Request&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;This property will contain the string you received in the Request-Stream interpreted as UTF8-encoded.&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Response&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;What you set here will be returned to the caller.&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;StatusCode&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;This is the statuscode that you will send to the caller.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Log in to BizTalk Workflow Services and create a type named &amp;quot;MinimalHttpReceive&amp;quot; with that Xoml definition and click &amp;quot;save changes&amp;quot;. &lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/CreateMinimalHttpReceive_5F00_2.png"&gt;&lt;img border="0" width="634" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/CreateMinimalHttpReceive_5F00_thumb.png" alt="CreateMinimalHttpReceive" height="629" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Note that you did not need to provide a rules definition.&lt;/p&gt;
&lt;p&gt;Create an instance of that type and start it and look at your instance manager:&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/StartMinimalHttpReceive_5F00_2.png"&gt;&lt;img border="0" width="634" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/StartMinimalHttpReceive_5F00_thumb.png" alt="StartMinimalHttpReceive" height="492" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Note the GUID of the workflow instance: &lt;strong&gt;7bf7a7c4-82f5-4935-9c03-62ba1e7991aa&lt;br /&gt;&lt;/strong&gt;This will vary for you and you will have to remember your own GUID.&lt;/p&gt;
&lt;p&gt;Now start the workflow instance and go to this URL in your browser:&lt;/p&gt;
&lt;h4&gt;&lt;/h4&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#000000;"&gt;http://workflow.biztalk.net/servicesHttp/&lt;strong&gt;YOURUSERNAMEHERE&lt;/strong&gt;/workflows/MinimalHttpReceive/instances/&lt;strong&gt;YOURGUIDHERE&lt;/strong&gt;/cloudHttpReceive1&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;If your browser does not display the complete URL, here it is again as a link:&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;a href="http://workflow.biztalk.net/servicesHttp/YOURUSERNAMEHERE/workflows/MinimalHttpReceive/instances/YOURGUIDHERE/cloudHttpReceive1"&gt;http://workflow.biztalk.net/servicesHttp/&lt;strong&gt;YOURUSERNAMEHERE&lt;/strong&gt;/workflows/&lt;br /&gt;MinimalHttpReceive/instances/&lt;strong&gt;YOURGUIDHERE&lt;/strong&gt;/cloudHttpReceive1&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;You should see something like this:&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/HttpReceiveBrowserLogin_5F00_4.png"&gt;&lt;img border="0" width="634" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/HttpReceiveBrowserLogin_5F00_thumb_5F00_1.png" alt="HttpReceiveBrowserLogin" height="508" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Now you need to log in with the username and password (or respective Information Card) that you used to create the workflow type and instance.&lt;/p&gt;
&lt;p&gt;Then you should see something like that:&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;string&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;http://schemas.microsoft.com/2003/10/Serialization/&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;Hello&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;string&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Your workflow should have been changed to &amp;quot;Completed&amp;quot; state.&lt;/p&gt;
&lt;p&gt;Now what is interesting here is that you do not receive a pure string &amp;quot;Hello&amp;quot; but actually an XML serialization representation of the object string with content &amp;quot;Hello&amp;quot;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Sending to CloudHttpReceive &lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.httpReceive.png"&gt;&lt;img border="0" width="20" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/System.ServiceBus.Workflow.httpReceive_5F00_thumb.png" alt="System.ServiceBus.Workflow.httpReceive" height="20" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; programmatically&lt;/h3&gt;
&lt;p&gt;Ok, but now how can you do this programmatically? As you might realize, the challenge is the need to &amp;quot;log in&amp;quot;. Unfortunately you cannot just use NetworkCredentials to log in but need to make a little detour.&lt;/p&gt;
&lt;p&gt;At first you need to retrieve a token for logging in. You can find an example how to do it in this sample: &lt;i&gt;Program Files\Microsoft BizTalk Services SDK\Samples\Workflow\ExploringFeatures\CreateWorkflowAPIs &lt;/i&gt;in Program.cs method GetTokenGrantingToken.&lt;/p&gt;
&lt;p&gt;I took the liberty of modifying the method slightly and to remove any dependency to the SDK:&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; GetTokenGrantingToken(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; userName, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; password)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;{&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; tokenUrl = &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Format(&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#a31515;"&gt;&amp;quot;https://{0}/issuetoken.aspx?u={1}&amp;amp;p={2}&amp;quot;&lt;/span&gt;,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#a31515;"&gt;&amp;quot;identity.biztalk.net&amp;quot;&lt;/span&gt;,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; userName,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; password);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;HttpWebRequest&lt;/span&gt; tokenRequest = (&lt;span style="color:#2b91af;"&gt;HttpWebRequest&lt;/span&gt;)&lt;span style="color:#2b91af;"&gt;WebRequest&lt;/span&gt;.Create(tokenUrl);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;HttpWebResponse&lt;/span&gt; tokenResponse = (&lt;span style="color:#2b91af;"&gt;HttpWebResponse&lt;/span&gt;)tokenRequest.GetResponse();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;Stream&lt;/span&gt; responseStream = tokenResponse.GetResponseStream())&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;byte&lt;/span&gt;[] tokenBody = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;byte&lt;/span&gt;[500];&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; tokenBodyLength = responseStream.Read(tokenBody, 0, 500);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Encoding&lt;/span&gt;.UTF8.GetString(tokenBody, 0, tokenBodyLength);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;}&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;It is pretty straightforward. Basically it is a simple HTTPS request to this URL:&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;a href="https://identity.biztalk.net/issuetoken.aspx?u=YOURUSERNAME&amp;amp;p=YOURPASSWORD"&gt;&lt;span style="color:#000000;"&gt;https://identity.biztalk.net/issuetoken.aspx?u=YOURUSERNAME&amp;amp;p=YOURPASSWORD&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Now, the string that you received represents your token and you need to attach that as a header of type &amp;quot;&lt;strong&gt;X-MS-Identity-Token&lt;/strong&gt;&amp;quot; to your WebHttpRequest you want to send to your workflow instance.&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;request.Headers.Add(&lt;span style="color:#a31515;"&gt;&amp;quot;X-MS-Identity-Token&amp;quot;&lt;/span&gt;, token);&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;This is the code-snipped for a method encapsulating the whole request:&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; CallHttpReceiveActivity(&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; requestBody, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; username, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; token,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; workflowTypeName, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; activityName,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; instanceId)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;{&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt; address = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;@&amp;quot;http://workflow.biztalk.net/servicesHttp/&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + username + &lt;span style="color:#a31515;"&gt;&amp;quot;/workflows/&amp;quot;&lt;/span&gt; + workflowTypeName +&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#a31515;"&gt;&amp;quot;/instances/&amp;quot;&lt;/span&gt; + instanceId + &lt;span style="color:#a31515;"&gt;&amp;quot;/&amp;quot;&lt;/span&gt; + activityName);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;HttpWebRequest&lt;/span&gt; request = (&lt;span style="color:#2b91af;"&gt;HttpWebRequest&lt;/span&gt;)&lt;span style="color:#2b91af;"&gt;HttpWebRequest&lt;/span&gt;.Create(address);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#008000;"&gt;//this adds the retrieved token as a header&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.Headers.Add(&lt;span style="color:#a31515;"&gt;&amp;quot;X-MS-Identity-Token&amp;quot;&lt;/span&gt;, token);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.Method = &lt;span style="color:#a31515;"&gt;&amp;quot;POST&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.ContentType = &lt;span style="color:#a31515;"&gt;&amp;quot;text/plain&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#008000;"&gt;//send the body&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;byte&lt;/span&gt;[] requestBodyBytes = &lt;span style="color:#2b91af;"&gt;Encoding&lt;/span&gt;.UTF8.GetBytes(requestBody);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.ContentLength = requestBodyBytes.Length;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;Stream&lt;/span&gt; requestStream = request.GetRequestStream())&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; requestStream.Write(requestBodyBytes, 0, requestBodyBytes.Length);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; requestStream.Flush();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;HttpWebResponse&lt;/span&gt; response = (&lt;span style="color:#2b91af;"&gt;HttpWebResponse&lt;/span&gt;)request.GetResponse();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;Stream&lt;/span&gt; responseStream = response.GetResponseStream())&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;StreamReader&lt;/span&gt; reader = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;StreamReader&lt;/span&gt;(responseStream,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Encoding&lt;/span&gt;.UTF8))&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; reader.ReadToEnd();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;}&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;You can combine both like this:&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; CallHttpReceiveActivityWithLogin(&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; requestBody, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; username, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; password,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; workflowTypeName, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; activityName,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; instanceId)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;{&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; token = GetTokenGrantingToken(username, password);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; CallHttpReceiveActivity(&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; requestBody, username, token,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; workflowTypeName, activityName,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; instanceId);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;}&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;And an example call to the same workflow instance that we accessed above through the browser would be:&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; userName = &lt;span style="color:#a31515;"&gt;&amp;quot;YOURUSERNAME&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; password = &lt;span style="color:#a31515;"&gt;&amp;quot;YOURPASSWORD&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; workflowTypeName = &lt;span style="color:#a31515;"&gt;&amp;quot;MinimalHttpReceive&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; activityName = &lt;span style="color:#a31515;"&gt;&amp;quot;cloudHttpReceive1&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; instanceId = &lt;span style="color:#a31515;"&gt;&amp;quot;7bf7a7c4-82f5-4935-9c03-62ba1e7991aa&amp;quot;&lt;/span&gt;;&lt;span style="color:#008000;"&gt;//YOUR GUID HERE INSTEAD&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; requestBody=&lt;span style="color:#a31515;"&gt;&amp;quot;Text to send to cloud&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; result = CallHttpReceiveActivityWithLogin(&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; requestBody, userName, password,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; workflowTypeName, activityName,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; instanceId);&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For the sake of completeness here the complete code together:&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System.Text;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System.Net;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System.IO;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; SendToHttpReceive&lt;/p&gt;
&lt;p style="margin:0px;"&gt;{&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Program&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Main(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;[] args)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; userName = &lt;span style="color:#a31515;"&gt;&amp;quot;YOURUSERNAME&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; password = &lt;span style="color:#a31515;"&gt;&amp;quot;YOURPASSWORD&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; workflowTypeName = &lt;span style="color:#a31515;"&gt;&amp;quot;MinimalHttpReceive&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; activityName = &lt;span style="color:#a31515;"&gt;&amp;quot;cloudHttpReceive1&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; instanceId = &lt;span style="color:#a31515;"&gt;&amp;quot;7bf7a7c4-82f5-4935-9c03-62ba1e7991aa&amp;quot;&lt;/span&gt;;&lt;span style="color:#008000;"&gt;//YOUR GUID HERE INSTEAD&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; requestBody=&lt;span style="color:#a31515;"&gt;&amp;quot;Text to send to cloud&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; result = CallHttpReceiveActivityWithLogin(&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; requestBody, userName, password,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; workflowTypeName, activityName,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; instanceId);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(result);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.ReadLine();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; CallHttpReceiveActivityWithLogin(&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; requestBody, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; username, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; password,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; workflowTypeName, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; activityName,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; instanceId)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; token = GetTokenGrantingToken(username, password);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; CallHttpReceiveActivity(&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; requestBody, username, token,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; workflowTypeName, activityName,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; instanceId);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; GetTokenGrantingToken(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; userName, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; password)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; tokenUrl = &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Format(&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#a31515;"&gt;&amp;quot;https://{0}/issuetoken.aspx?u={1}&amp;amp;p={2}&amp;quot;&lt;/span&gt;,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#a31515;"&gt;&amp;quot;identity.biztalk.net&amp;quot;&lt;/span&gt;,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; userName,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; password);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;HttpWebRequest&lt;/span&gt; tokenRequest = (&lt;span style="color:#2b91af;"&gt;HttpWebRequest&lt;/span&gt;)&lt;span style="color:#2b91af;"&gt;WebRequest&lt;/span&gt;.Create(tokenUrl);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;HttpWebResponse&lt;/span&gt; tokenResponse = (&lt;span style="color:#2b91af;"&gt;HttpWebResponse&lt;/span&gt;)tokenRequest.GetResponse();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;Stream&lt;/span&gt; responseStream = tokenResponse.GetResponseStream())&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;byte&lt;/span&gt;[] tokenBody = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;byte&lt;/span&gt;[500];&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; tokenBodyLength = responseStream.Read(tokenBody, 0, 500);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Encoding&lt;/span&gt;.UTF8.GetString(tokenBody, 0, tokenBodyLength);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; CallHttpReceiveActivity(&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; requestBody, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; username, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; token,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; workflowTypeName, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; activityName,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; instanceId)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt; address = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;@&amp;quot;http://workflow.biztalk.net/servicesHttp/&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + username + &lt;span style="color:#a31515;"&gt;&amp;quot;/workflows/&amp;quot;&lt;/span&gt; + workflowTypeName +&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#a31515;"&gt;&amp;quot;/instances/&amp;quot;&lt;/span&gt; + instanceId + &lt;span style="color:#a31515;"&gt;&amp;quot;/&amp;quot;&lt;/span&gt; + activityName);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;HttpWebRequest&lt;/span&gt; request = (&lt;span style="color:#2b91af;"&gt;HttpWebRequest&lt;/span&gt;)&lt;span style="color:#2b91af;"&gt;HttpWebRequest&lt;/span&gt;.Create(address);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#008000;"&gt;//this adds the retrieved token as a header&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.Headers.Add(&lt;span style="color:#a31515;"&gt;&amp;quot;X-MS-Identity-Token&amp;quot;&lt;/span&gt;, token);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.Method = &lt;span style="color:#a31515;"&gt;&amp;quot;POST&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.ContentType = &lt;span style="color:#a31515;"&gt;&amp;quot;text/plain&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#008000;"&gt;//send the body&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;byte&lt;/span&gt;[] requestBodyBytes = &lt;span style="color:#2b91af;"&gt;Encoding&lt;/span&gt;.UTF8.GetBytes(requestBody);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.ContentLength = requestBodyBytes.Length;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;Stream&lt;/span&gt; requestStream = request.GetRequestStream())&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; requestStream.Write(requestBodyBytes, 0, requestBodyBytes.Length);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; requestStream.Flush();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;HttpWebResponse&lt;/span&gt; response = (&lt;span style="color:#2b91af;"&gt;HttpWebResponse&lt;/span&gt;)request.GetResponse();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;Stream&lt;/span&gt; responseStream = response.GetResponseStream())&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;StreamReader&lt;/span&gt; reader = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;StreamReader&lt;/span&gt;(responseStream,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Encoding&lt;/span&gt;.UTF8))&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; reader.ReadToEnd();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;}&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Running that against a running workflow instance will (not surprisingly) result in this output:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/CallMinimalHttpReceiveActivityOutput_5F00_2.png"&gt;&lt;img border="0" width="681" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben.CloudymessagesSendReceiveActivitiesinBiz_5F00_33E3/CallMinimalHttpReceiveActivityOutput_5F00_thumb.png" alt="CallMinimalHttpReceiveActivityOutput" height="92" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In a future post I will try to show an &amp;quot;end-to-end&amp;quot;-demo that actually integrates a lot of what was shown previously and achieves bidirectional communication with a service in the cloud and has your workflow doing something that the service requests.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=2861" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/andreas_erben/archive/tags/Windows+Communication+Foundation/default.aspx">Windows Communication Foundation</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/WCF/default.aspx">WCF</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/.NET+3.0/default.aspx">.NET 3.0</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/BizTalk/default.aspx">BizTalk</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/.NET/default.aspx">.NET</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/BPM/default.aspx">BPM</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/WF/default.aspx">WF</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/Windows+Workflow+Foundation/default.aspx">Windows Workflow Foundation</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/SOA/default.aspx">SOA</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/Cloud+Computing/default.aspx">Cloud Computing</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/Cloud/default.aspx">Cloud</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/BizTalk+Services/default.aspx">BizTalk Services</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/Cloud+Services/default.aspx">Cloud Services</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/OSLO/default.aspx">OSLO</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/BizTalk+Workflow+Services/default.aspx">BizTalk Workflow Services</category></item><item><title>Clouding the flow of work / BizTalk Workflow Services Intro</title><link>http://developers.de/blogs/andreas_erben/archive/2008/08/05/clouding-the-flow-of-work-biztalk-workflow-services-intro.aspx</link><pubDate>Tue, 05 Aug 2008 10:44:00 GMT</pubDate><guid isPermaLink="false">7e491611-45ad-4dae-a68f-c4cb64439510:2619</guid><dc:creator>Andreas Erben</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developers.de/blogs/andreas_erben/rsscomments.aspx?PostID=2619</wfw:commentRss><comments>http://developers.de/blogs/andreas_erben/archive/2008/08/05/clouding-the-flow-of-work-biztalk-workflow-services-intro.aspx#comments</comments><description>&lt;p&gt;(German version maybe coming later / deutsche Version folgt eventuell sp&amp;auml;ter)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://workflow.biztalk.net"&gt;http://workflow.biztalk.net&lt;/a&gt; now offers a CTP of BizTalk Workflow Services. Let&amp;#39;s look at what that means.&lt;/p&gt;
&lt;p&gt;First you should download the latest version of the SDK. Right now this is the file &amp;quot;&lt;i&gt;BizTalk Services SDK Setup 0.12.185.2.exe&lt;/i&gt;&amp;quot;. Please note that the availability of this site and all sub-sites of biztalk.net is at present not reliable at all. It can be taken down temporarily or even for extended periods of time. Please note that the information in this article is based on a very early pre-release version of something that might become a product. So, by the time you read it, &lt;b&gt;&lt;span style="text-decoration:underline;"&gt;this information may be outdated and plainly wrong&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;If you do not have an account for BizTalk Services yet, now is the time to create one. Vista users, I recommend creating an information card. When setting a username/password. I also recommend not setting a password that you really want to be secure. Reason: There will be things like deployment samples where the password will be visible.&lt;/p&gt;
&lt;p&gt;Assuming you did that, let&amp;#39;s look at the SDK:&lt;/p&gt;
&lt;p&gt;To actually see what is happening in the samples, you have to start another sample in&lt;br /&gt;&lt;i&gt;Program Files\Microsoft BizTalk Services SDK\Samples\Communication\ExploringFeatures\ConnectionModes\Multicast&lt;/i&gt;. This is the place where you will receive a friendly &amp;quot;Hello&amp;quot; from your workflow via the Internet Service Bus (ISB). Use &amp;quot;watchdog&amp;quot; as your chat session name.&lt;/p&gt;
&lt;p&gt;In &lt;i&gt;Program Files\Microsoft BizTalk Services SDK\Samples\Workflow\GettingStarted&lt;/i&gt;, you can find a definition of a simple &amp;quot;Cloud&amp;quot; Workflow together with rules.&lt;/p&gt;
&lt;p&gt;To get started really quickly, you can look at &lt;/p&gt;
&lt;p&gt;&lt;i&gt;Program Files\Microsoft BizTalk Services SDK\Samples\Workflow\ExploringFeatures\CreateWorkflowAPIs&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;This sample will, when you start it, ask for your credentials and upload a simple workflow to your BizTalk Services account.&lt;/p&gt;
&lt;p&gt;I was a little paranoid, so I blanked out the password (now you know why you should not use a relevant password that you use elsewhere, since you might show this sample to someone and bang - there goes your password) and even the authentication token (even though the latter should not really be necessary... but you never know :) ). When doing that, leave it running for a bit before doing &amp;quot;Press any key to terminate workflow instance&amp;quot;.&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWorkflowAPICreateWorkflowOutput01_5F00_1.png"&gt;&lt;img border="0" width="634" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWorkflowAPICreateWorkflowOutput01_5F00_thumb_5F00_1.png" alt="BizTalkServicesWorkflowAPICreateWorkflowOutput01" height="167" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;What should happen? Your workflow will start and will try to send a HTTP request to &lt;a href="http://www.microsoft.com"&gt;http://www.microsoft.com&lt;/a&gt;. If the HTTP-request status is less than 400, then it will send a message to the ISB (to &amp;quot;your&amp;quot; session) that it can reach the Microsoft website. If the site is not responding, then you will receive this information via ISB. The workflow will repeat this procedure every 30 seconds.&lt;/p&gt;
&lt;p&gt;Look at the output of your MulticastSample:&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWorkflowMultiCastOutput01_5F00_1.png"&gt;&lt;img border="0" width="634" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWorkflowMultiCastOutput01_5F00_thumb_5F00_1.png" alt="BizTalkServicesWorkflowMultiCastOutput01" height="324" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;(Again, paranoid me did not want to disclose the chat-name right now)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When setting it up, you should see something like that:&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWFTypeManagement01.png"&gt;&lt;img border="0" width="634" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWFTypeManagement01_5F00_thumb.png" alt="BizTalkServicesWFTypeManagement01" height="484" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;You can also create / edit your workflows online without using Visual Studio. No designer support though right now. So, let&amp;#39;s edit this. First click on the line with the name of your workflow type (&amp;quot;mywatchdog&amp;quot; in this case). It will be marked in the browser and then click on &amp;quot;Edit&amp;quot;.&lt;/p&gt;
&lt;p&gt;(Note that &amp;quot;Add New&amp;quot; is not much different other than that you have to also specify a name for your new workflow type)&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWFTypeManagement02.png"&gt;&lt;img border="0" width="634" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWFTypeManagement02_5F00_thumb.png" alt="BizTalkServicesWFTypeManagement02" height="643" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;You see that only two tabs are present: Xoml and Rules. This means that the only thing that is uploaded are the XAML (.xoml) and including the rules definitions of your workflow. With other words - no code-behind/developer defined partial C# classes!&lt;/p&gt;
&lt;p&gt;Typically you would just copy/paste your relevant XAML (XOML) and rules here.&lt;/p&gt;
&lt;p&gt;In &amp;quot;Type Management&amp;quot; you can also &amp;quot;Create Instances&amp;quot;. Doing that will add an instance to the &amp;quot;Manage Instance&amp;quot; page:&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWFInstanceManagement01.png"&gt;&lt;img border="0" width="634" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWFInstanceManagement01_5F00_thumb.png" alt="BizTalkServicesWFInstanceManagement01" height="489" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;You could start an instance (if it is in a startable state) by selecting it and then clicking &amp;quot;&lt;i&gt;Start&lt;/i&gt;&amp;quot;. Note that when you see an instance that displays &amp;quot;Terminated&amp;quot; and the termination was because of an exception, then you can actually click on the link behind the word &amp;quot;Terminated&amp;quot; to get the top-level exception that caused the Workflow to terminate.&lt;/p&gt;
&lt;p&gt;But what can you actually do with the Workflow Services right now? Remember, you are running them in the &amp;quot;cloud&amp;quot;. And if you could do just anything, this could result in the whole platform getting vulnerable. So what Microsoft did was, to limit the types of activities you can run in the &amp;quot;cloud&amp;quot;.&lt;/p&gt;
&lt;p&gt;Right now those activities are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CloudDelay &lt;/li&gt;
&lt;li&gt;CloudHttpReceive &lt;/li&gt;
&lt;li&gt;CloudHttpSend &lt;/li&gt;
&lt;li&gt;CloudIfElse (and CloudIfElseBranch) &lt;/li&gt;
&lt;li&gt;CloudSequence &lt;/li&gt;
&lt;li&gt;CloudServiceBusSend &lt;/li&gt;
&lt;li&gt;CloudWhile&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a severely limiting subset of Workflow activities.&lt;/p&gt;
&lt;p&gt;If you do not limit yourself to those activities, e.g. by adding something like&lt;/p&gt;
&lt;p style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DelayActivity&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;TimeoutDuration&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;00:00:00&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;delayActivity1&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;to your XOML, you will get &amp;quot;&lt;span style="color:#ff0000;"&gt;&lt;b&gt;The workflow failed validation&lt;/b&gt;&lt;/span&gt;&amp;quot; when trying to save your changes.&amp;acute;&lt;/p&gt;
&lt;p&gt;Now let&amp;#39;s look at the workflow again in Visual Studio. I use Visual Studio 2008, the samples are made for Visual Studio 2005 with the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=5D61409E-1FA3-48CF-8023-E8F38E709BA6&amp;amp;displaylang=en"&gt;Visual Studio 2005 Extensions for .Net Framework 3.0 (Windows Workflow Foundation)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We are working with &lt;i&gt;Program Files\Microsoft BizTalk Services SDK\Samples\Workflow\GettingStarted &lt;/i&gt;now again.&lt;/p&gt;
&lt;p&gt;Your workflow should look like this:&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWorkflowGettingStarted01_5F00_2.png"&gt;&lt;img border="0" width="483" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWorkflowGettingStarted01_5F00_thumb.png" alt="BizTalkServicesWorkflowGettingStarted01" height="721" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Open in the Menu &lt;i&gt;Tools / Choose Toolbox Items... &lt;/i&gt;or select &lt;i&gt;Choose Items...&lt;/i&gt; directly in the context-menu when right-clicking in the toolbox. In this window go to the tab &amp;quot;&lt;i&gt;Activities&lt;/i&gt;&amp;quot;.&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWorkflowAddToToolbox01_5F00_2.png"&gt;&lt;img border="0" width="634" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWorkflowAddToToolbox01_5F00_thumb.png" alt="BizTalkServicesWorkflowAddToToolbox01" height="434" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;The click &amp;quot;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;B&lt;/span&gt;rowse...&lt;/i&gt;&amp;quot; and select the DLL &amp;quot;System.ServiceBus.Workflow.dll&amp;quot; in &lt;i&gt;Program Files\Microsoft BizTalk Services SDK\Assemblies &lt;/i&gt;and choose &amp;quot;&lt;i&gt;OK&lt;/i&gt;&amp;quot;.&lt;/p&gt;
&lt;p&gt;You should see something like that.&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWorkflowAddToToolbox02_5F00_2.png"&gt;&lt;img border="0" width="634" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWorkflowAddToToolbox02_5F00_thumb.png" alt="BizTalkServicesWorkflowAddToToolbox02" height="434" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Select &amp;quot;OK&amp;quot; again and your toolbox should see some new activities at the bottom of the list.&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWorkflowAddToToolbox03_5F00_2.png"&gt;&lt;img border="0" width="226" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWorkflowAddToToolbox03_5F00_thumb.png" alt="BizTalkServicesWorkflowAddToToolbox03" height="881" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;And your project should look similar to this.&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWorkflowGettingStarted02_5F00_2.png"&gt;&lt;img border="0" width="634" src="http://developers.de/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreas_5F00_erben/BizTalkServicesWorkflowGettingStarted02_5F00_thumb.png" alt="BizTalkServicesWorkflowGettingStarted02" height="547" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Now you are basically ready to build your own cloud-hosted workflows.&lt;/p&gt;
&lt;p&gt;I think it is worth noting, that the workflow is at the root-level still a regular SequentialWorkflowActivity as seen in the code (which is however not used in the cloud but still it is still there in the project file. Do not put logic here. :) ):&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;partial&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Workflow1&lt;/span&gt; : &lt;span style="color:#2b91af;"&gt;SequentialWorkflowActivity&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;{&lt;/p&gt;
&lt;p style="margin:0px;"&gt;}&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;and more importantly in the root node of the XAML:&lt;/p&gt;
&lt;div style="font-size:10pt;background:#ffffc0;color:black;font-family:courier new;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SequentialWorkflowActivity&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x:Class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;WorkflowProject1.Workflow1&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Workflow1&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;xmlns:ns0&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;clr-namespace:System.ServiceBus.Workflow;Assembly=System.ServiceBus.Workflow, Version=0.12.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/workflow&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;When looking at the rules, you will further notice that the rules have nothing cloud-specific besides of accessing the cloud-specific activities.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The next posts will look closer at the new activities and at some of the inner workings of the samples, we will further try to stretch what can be done.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://developers.de/aggbug.aspx?PostID=2619" width="1" height="1"&gt;</description><category domain="http://developers.de/blogs/andreas_erben/archive/tags/.NET+3.0/default.aspx">.NET 3.0</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/VS+2005/default.aspx">VS 2005</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/Visual+Studio+2005/default.aspx">Visual Studio 2005</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/BizTalk/default.aspx">BizTalk</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/BizTalk+Server/default.aspx">BizTalk Server</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/.NET/default.aspx">.NET</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/VS+2008/default.aspx">VS 2008</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/BPM/default.aspx">BPM</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/WF/default.aspx">WF</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/Windows+Workflow+Foundation/default.aspx">Windows Workflow Foundation</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/SOA/default.aspx">SOA</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/Cloud+Computing/default.aspx">Cloud Computing</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/Cloud/default.aspx">Cloud</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/BizTalk+Services/default.aspx">BizTalk Services</category><category domain="http://developers.de/blogs/andreas_erben/archive/tags/Cloud+Services/default.aspx">Cloud Services</category></item></channel></rss>