<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1293666849220235595</id><updated>2024-12-19T09:03:16.558+05:30</updated><category term="Windows Azure"/><category term="ASP.Net"/><category term="Windows Workflow 4.0"/><category term="SQL Azure"/><category term="App Fabric"/><category term="PDC 2010"/><category term="Windows Azure Diagnostics"/><category term="Azure SDK 1.3"/><category term="RDP Connection to Windows Azure Instance"/><category term="Sharepoint 2010"/><category term="VM Role"/><category term="ADFS"/><category term="Affinity Groups"/><category term="Amazon Web Services"/><category term="Cerebrata Azure Management Cmdlets"/><category term="Federated Authentication"/><category term="MVC 2"/><category term="SOA Architecture"/><category term="Upgrade and Fault Domain"/><category term="Windows Azure Connect"/><title type='text'>Windows Azure</title><subtitle type='html'>It is a cloud services operating system that serves as the development, service hosting and service management environment for the Windows Azure platform. I will be posting latest updates on Windows Azure</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>64</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-8119592329091093188</id><published>2010-12-16T02:47:00.000+05:30</published><updated>2010-12-16T02:47:22.007+05:30</updated><title type='text'>Performance in Windows Azure and Azure Storage</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Check this link below.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;http://convective.wordpress.com/2010/10/08/performance-in-windows-azure-and-azure-storage/&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;http://convective.wordpress.com/2010/10/08/performance-in-windows-azure-and-azure-storage/&lt;/a&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/8119592329091093188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/8119592329091093188' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/8119592329091093188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/8119592329091093188'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/performance-in-windows-azure-and-azure.html' title='Performance in Windows Azure and Azure Storage'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-6466588132174247368</id><published>2010-12-16T02:31:00.000+05:30</published><updated>2010-12-16T02:31:18.840+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows Azure Diagnostics"/><title type='text'>Diagnostics in Windows Azure</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Hi Friends,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Check this link below&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://convective.wordpress.com/2009/12/08/diagnostics-in-windows-azure/&quot;&gt;http://convective.wordpress.com/2009/12/08/diagnostics-in-windows-azure/&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/6466588132174247368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/6466588132174247368' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/6466588132174247368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/6466588132174247368'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/diagnostics-in-windows-azure.html' title='Diagnostics in Windows Azure'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-1505741017708639799</id><published>2010-12-16T02:24:00.001+05:30</published><updated>2010-12-16T02:31:26.075+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows Azure Diagnostics"/><title type='text'>Configuration Changes to Windows Azure Diagnostics in Azure SDK v1.3</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The configuration of Windows Azure Diagnostics (WAD) was changed in the &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7a1089b6-4050-4307-86c4-9dadaa5ed018&quot;&gt;Windows Azure SDK v1.3&lt;/a&gt; release. This post is a follow-on to three earlier posts on Windows Azure Diagnostics – &lt;a href=&quot;http://convective.wordpress.com/2009/12/08/diagnostics-in-windows-azure/&quot;&gt;overview&lt;/a&gt;, &lt;a href=&quot;http://convective.wordpress.com/2009/12/08/custom-diagnostics-in-windows-azure/&quot;&gt;custom diagnostics&lt;/a&gt; and &lt;a href=&quot;http://convective.wordpress.com/2009/12/10/diagnostics-management-in-windows-azure/&quot;&gt;diagnostics management&lt;/a&gt; – and describes how WAD configuration is affected by the Azure SDK v1.3 changes ...&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br/&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Check this link for continuation&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;http://convective.wordpress.com/2010/12/01/configuration-changes-to-windows-azure-diagnostics-in-azure-sdk-v1-3/&quot;&gt;http://convective.wordpress.com/2010/12/01/configuration-changes-to-windows-azure-diagnostics-in-azure-sdk-v1-3/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/1505741017708639799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/1505741017708639799' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/1505741017708639799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/1505741017708639799'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/configuration-changes-to-windows-azure.html' title='Configuration Changes to Windows Azure Diagnostics in Azure SDK v1.3'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-1929204235615398794</id><published>2010-12-16T01:59:00.000+05:30</published><updated>2010-12-16T02:31:32.894+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows Azure"/><title type='text'>Detail topics on Azure</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Check the links for Detail topics on Azure&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Service Runtime in Windows Azure&lt;/b&gt;&amp;nbsp; --&amp;gt; &lt;a href=&quot;http://convective.wordpress.com/2010/03/18/service-runtime-in-windows-azure/&quot;&gt;http://convective.wordpress.com/2010/03/18/service-runtime-in-windows-azure/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h1 class=&quot;entry-title&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Auto scaling in Windows&amp;nbsp;Azure --&amp;gt;&lt;/span&gt;&lt;a href=&quot;http://convective.wordpress.com/2010/10/12/autoscaling-in-windows-azure/&quot; style=&quot;font-family: Verdana,sans-serif; font-weight: normal;&quot;&gt; http://convective.wordpress.com/2010/10/12/autoscaling-in-windows-azure/&lt;/a&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 class=&quot;entry-title&quot;&gt;&lt;span style=&quot;font-family: Verdana,sans-serif; font-size: small;&quot;&gt;&amp;nbsp;Local Storage on Windows&amp;nbsp;Azure&amp;nbsp; --&amp;gt; &lt;a href=&quot;http://convective.wordpress.com/2009/05/09/local-storage-on-windows-azure/&quot; style=&quot;font-weight: normal;&quot;&gt;http://convective.wordpress.com/2009/05/09/local-storage-on-windows-azure/&lt;/a&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 class=&quot;entry-title&quot;&gt;&lt;a class=&quot;cssButton&quot; href=&quot;javascript:void(0)&quot; id=&quot;publishButton&quot; onclick=&quot;if (this.className.indexOf(&amp;quot;ubtn-disabled&amp;quot;) == -1) {var e = document[&#39;postingForm&#39;].publish;(e.length) ? e[0].click() : e.click(); if (window.event) window.event.cancelBubble = true; return false;}&quot; target=&quot;&quot;&gt;&lt;div class=&quot;cssButtonOuter&quot;&gt;&lt;div class=&quot;cssButtonMiddle&quot;&gt;&lt;div class=&quot;cssButtonInner&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt;&lt;/h1&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/1929204235615398794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/1929204235615398794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/1929204235615398794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/1929204235615398794'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/detail-topics-on-azure.html' title='Detail topics on Azure'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-1770984407514222479</id><published>2010-12-16T01:54:00.000+05:30</published><updated>2010-12-16T02:31:40.241+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Azure SDK 1.3"/><title type='text'>Interrole Communication Example in Windows Azure</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Hi Friends,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Check this links below which describes about Internal End Points of Azure with examples&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt; &lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;h3 class=&quot;post-name&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Inter role Communication Example in Windows Azure&lt;/span&gt;&lt;/h3&gt;&lt;h3 class=&quot;post-name&quot;&gt;&lt;span style=&quot;font-size: small; font-weight: normal;&quot;&gt;&lt;a href=&quot;http://blogs.msdn.com/b/hakoman/archive/2010/06/26/interrole-communication-example-in-windows-azure.aspx&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;http://blogs.msdn.com/b/hakoman/archive/2010/06/26/interrole-communication-example-in-windows-azure.aspx&lt;/a&gt;&lt;/span&gt; &lt;/h3&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Creating an external facing Azure Worker Role endpoint&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;a href=&quot;http://microsoft.realdolmenblogs.com/post/Creating-an-external-facing-Azure-Worker-Role-endpoint.aspx%20&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;http://microsoft.realdolmenblogs.com/post/Creating-an-external-facing-Azure-Worker-Role-endpoint.aspx &lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;h1 href=&quot;http://social.msdn.microsoft.com:80/Forums/en/windowsazure/thread/42670f73-f181-4478-b536-4f458466b902&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span name=&quot;subject&quot;&gt;Limitation on the number of internal endpoints per worker/ web role&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;You can have a maximum of 5 incoming endpoints per role (input or  internal, doesn&#39;t matter). You can have a maximum of 5 roles. 5 * 5 = 25&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/1770984407514222479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/1770984407514222479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/1770984407514222479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/1770984407514222479'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/interrole-communication-example-in.html' title='Interrole Communication Example in Windows Azure'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-4092346229003262076</id><published>2010-12-14T00:02:00.000+05:30</published><updated>2010-12-14T00:20:35.373+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Workflow 4.0"/><title type='text'>Developing Sequential Workflow In ASP.Net Applications</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Check this link below for that sample&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;b&gt;&lt;a href=&quot;http://sunilyadav.wordpress.com/2009/10/16/developing-sequential-workflow-in-asp-net-applications/&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;http://sunilyadav.wordpress.com/2009/10/16/developing-sequential-workflow-in-asp-net-applications/&lt;/a&gt;&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/4092346229003262076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/4092346229003262076' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/4092346229003262076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/4092346229003262076'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/developing-sequential-workflow-in.html' title='Developing Sequential Workflow In ASP.Net Applications'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-1976781384476136558</id><published>2010-12-14T00:00:00.000+05:30</published><updated>2010-12-14T00:20:35.375+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Workflow 4.0"/><title type='text'>Persisting a workflow Sample</title><content type='html'>&lt;h1 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span id=&quot;ctl00_MiddleContent_txtSummary&quot; style=&quot;font-weight: normal;&quot;&gt;Persisting  a workflow means to store a workflow in a durable medium to be loaded  for later use. Some workflows are executed very shortly that they don’t  need to be persisted. However, some workflows are long-running and are  not completed for some period of time. This article shows how a workflow  is persisted to a database and how to load it to continue execution.&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span id=&quot;ctl00_MiddleContent_txtSummary&quot; style=&quot;font-weight: normal;&quot;&gt;Check this Aryicle below for more details. (&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #990000;&quot;&gt;To demonstrate how to persist a workflow, I’ll be reusing an application from my   previous article entitled WPF and the Model View View Model pattern. Currently,   it lets a user submit a new sales order and is added to a collection. In this   article, a workflow will be use to submit and approve a sales order.&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;http://www.eggheadcafe.com/tutorials/aspnet/93c7cf86-d7d8-46bf-a7f4-d5df69e3cbd1/persisting-wf-workflows.aspx&quot;&gt;http://www.eggheadcafe.com/tutorials/aspnet/93c7cf86-d7d8-46bf-a7f4-d5df69e3cbd1/persisting-wf-workflows.aspx&lt;/a&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a class=&quot;cssButton&quot; href=&quot;javascript:void(0)&quot; id=&quot;previewButton&quot; onclick=&quot;void(0);&quot; target=&quot;&quot;&gt;&lt;div class=&quot;cssButtonOuter&quot;&gt;&lt;div class=&quot;cssButtonMiddle&quot;&gt;&lt;div class=&quot;cssButtonInner&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span id=&quot;ctl00_MiddleContent_txtSummary&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/1976781384476136558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/1976781384476136558' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/1976781384476136558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/1976781384476136558'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/persisting-workflow-sample.html' title='Persisting a workflow Sample'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-5746231669283733899</id><published>2010-12-13T23:48:00.001+05:30</published><updated>2010-12-14T00:20:35.375+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Workflow 4.0"/><title type='text'>About Persistence WorkFlow</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Check the links below &lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;b&gt;Explanation with Example&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;a href=&quot;http://doc.snyderit.com/essentialwindowsworkflowfoundationoct2006/pref04.html&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;http://doc.snyderit.com/essentialwindowsworkflowfoundationoct2006/pref04.html&lt;/a&gt;&lt;a href=&quot;http://doc.snyderit.com/essentialwindowsworkflowfoundationoct2006/pref04.html&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;http://doc.snyderit.com/essentialwindowsworkflowfoundationoct2006/pref04.html&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Another Persistence Workflow Sample&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;a href=&quot;http://consultingblogs.emc.com/owainwragg/archive/2009/07/07/15661.aspx&quot;&gt;http://consultingblogs.emc.com/owainwragg/archive/2009/07/07/15661.aspx&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2 class=&quot;PostTitle&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;SqlWorkflowPersistenceService in Windows Workflow Foundation&lt;/span&gt;&lt;/h2&gt;&lt;b style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;a href=&quot;http://nayyeri.net/sqlworkflowpersistenceservice-in-windows-workflow-foundation&quot;&gt;http://nayyeri.net/sqlworkflowpersistenceservice-in-windows-workflow-foundation&lt;/a&gt;&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/5746231669283733899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/5746231669283733899' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/5746231669283733899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/5746231669283733899'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/about-workflow-persistence.html' title='About Persistence WorkFlow'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-8607713656596388529</id><published>2010-12-10T00:49:00.000+05:30</published><updated>2010-12-10T00:50:44.194+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows Workflow 4.0"/><title type='text'>Windows Workflow Foundation in .NET4</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;WWF sample developed in .Net 4.0&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;a href=&quot;http://blogs.msdn.com/b/somasegar/archive/2010/03/22/windows-workflow-foundation-in-net4.aspx&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;b&gt;http://blogs.msdn.com/b/somasegar/archive/2010/03/22/windows-workflow-foundation-in-net4.aspx&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;b&gt;Execute a Long-Running Workflow Using Persistence in Windows WF&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;a href=&quot;http://www.devx.com/dotnet/Article/32247/1954%20&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;http://www.devx.com/dotnet/Article/32247/1954 &lt;/a&gt;&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/8607713656596388529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/8607713656596388529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/8607713656596388529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/8607713656596388529'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/windows-workflow-foundation-in-net4.html' title='Windows Workflow Foundation in .NET4'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-7270597204316682135</id><published>2010-12-10T00:47:00.001+05:30</published><updated>2010-12-10T00:50:44.194+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows Workflow 4.0"/><title type='text'>Use the Windows Workflow Persistence Service</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Check this link:&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms735722%28VS.85%29.aspx&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;b&gt;http://msdn.microsoft.com/en-us/library/ms735722(VS.85).aspx&lt;/b&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/7270597204316682135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/7270597204316682135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/7270597204316682135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/7270597204316682135'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/use-windows-workflow-persistence.html' title='Use the Windows Workflow Persistence Service'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-1663537820538910128</id><published>2010-12-10T00:46:00.000+05:30</published><updated>2010-12-10T00:50:44.195+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows Workflow 4.0"/><title type='text'>Window Workflow Foundation Runtime Services: The Persistence Service</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Check this link for detailed explanation:&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;b&gt;&lt;a href=&quot;http://weblogs.asp.net/gsusx/archive/2005/10/05/426699.aspx&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;http://weblogs.asp.net/gsusx/archive/2005/10/05/426699.aspx&lt;/a&gt;&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/1663537820538910128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/1663537820538910128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/1663537820538910128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/1663537820538910128'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/window-workflow-foundation-runtime.html' title='Window Workflow Foundation Runtime Services: The Persistence Service'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-60763455757219657</id><published>2010-12-10T00:42:00.000+05:30</published><updated>2010-12-10T00:50:44.196+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows Workflow 4.0"/><title type='text'>Windows Workflow 4.0</title><content type='html'>&lt;h1 class=&quot;title&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Using Persistence Services Sample&lt;/span&gt;&lt;/h1&gt;&lt;h1 class=&quot;title&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Check this link below &lt;/span&gt;&lt;/h1&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms741700%28VS.90%29.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/ms741700%28VS.90%29.aspx&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h1 class=&quot;title&quot; style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Custom Persistence Service Sample&lt;/span&gt;&lt;/h1&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Check this link below &lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms741700%28VS.90%29.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/ms741725%28VS.90%29.aspx&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h1 class=&quot;title&quot; style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;SQL Workflow Instance Store&lt;/span&gt;&lt;/h1&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee383994%28VS.100%29.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/ee383994%28VS.100%29.aspx&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&amp;nbsp; &lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;One thing I&#39;ve noticed is that if I persist a Workflow in the SQL Database persistence store, and then load it back into the application later and complete the workflow, the record is removed from the persistence store when the last activity of the workflow completes.  I need to find out if this functionality is by design to keep the database from getting huge, or if I&#39;m doing something wrong.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;This delete behavior is configurable. For example, if you are using the &lt;b&gt;WorkflowServiceHost &lt;/b&gt;and are using code to configure your service host, you could set the &lt;b&gt;SqlWorkflowInstanceStoreBehavior.InstanceCompletionAction&lt;/b&gt; to &lt;b&gt;InstanceCompletionAction.DeleteNothing&lt;/b&gt; as in the following example:&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;pre class=&quot;prettyprint lang-sql&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;code&gt;&lt;span class=&quot;pln&quot;&gt;WorkflowServiceHost host &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; new WorkflowServiceHost&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;workflow&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; baseAddress&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;);&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;
SqlWorkflowInstanceStoreBehavior persistenceBehavior &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; new SqlWorkflowInstanceStoreBehavior&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;connString&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;);&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;
persistenceBehavior&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;InstanceCompletionAction &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; InstanceCompletionAction&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;DeleteNothing&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;
host&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;Description&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;Behaviors&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kwd&quot;&gt;Add&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;persistenceBehavior&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;prettyprint lang-sql&quot;&gt;&lt;code&gt;&lt;span class=&quot;pun&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;For more information on features of the SQL workflow instance store and how you can configure it, check out this &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee383994%28VS.100%29.aspx&quot; rel=&quot;nofollow&quot;&gt;MSDN article&lt;/a&gt;.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/60763455757219657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/60763455757219657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/60763455757219657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/60763455757219657'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/windows-workflow-40.html' title='Windows Workflow 4.0'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-3373770647272681700</id><published>2010-12-09T00:55:00.000+05:30</published><updated>2010-12-09T00:56:02.584+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Federated Authentication"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Azure"/><title type='text'>Azure + Bing Maps: Federated authentication with AppFabric ACS and Windows Live Messenger Connect</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Hi Friends,&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Check this link below&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://blogs.msdn.com/b/windows-azure-support/archive/2010/12/07/azure-bing-maps-federated-authentication-with-appfabric-acs-and-windows-live-messenger-connect.aspx&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;http://blogs.msdn.com/b/windows-azure-support/archive/2010/12/07/azure-bing-maps-federated-authentication-with-appfabric-acs-and-windows-live-messenger-connect.aspx&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/3373770647272681700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/3373770647272681700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/3373770647272681700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/3373770647272681700'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/azure-bing-maps-federated.html' title='Azure + Bing Maps: Federated authentication with AppFabric ACS and Windows Live Messenger Connect'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-4512139968124574566</id><published>2010-12-09T00:53:00.002+05:30</published><updated>2010-12-09T00:56:17.054+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="App Fabric"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Azure"/><title type='text'>Hybrid Cloud Solutions With Windows Azure AppFabric Middleware</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Hi Friends,&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Check this Link below&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;b&gt;&lt;a href=&quot;http://blogs.msdn.com/b/appfabriccat/archive/2010/11/29/hybrid-cloud-solutions-with-windows-azure-appfabric-middleware.aspx&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;http://blogs.msdn.com/b/appfabriccat/archive/2010/11/29/hybrid-cloud-solutions-with-windows-azure-appfabric-middleware.aspx&lt;/a&gt;&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/4512139968124574566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/4512139968124574566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/4512139968124574566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/4512139968124574566'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/hybrid-cloud-solutions-with-windows.html' title='Hybrid Cloud Solutions With Windows Azure AppFabric Middleware'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-7201830799544340136</id><published>2010-12-09T00:51:00.000+05:30</published><updated>2010-12-09T00:56:32.421+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="RDP Connection to Windows Azure Instance"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Azure"/><title type='text'>Windows Azure: Connecting to web role instance using Remote Desktop</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;My last posting about cloud covered &lt;a href=&quot;http://weblogs.asp.net/gunnarpeipman/archive/2010/12/01/windows-azure-new-portal-new-services-new-tools.aspx&quot;&gt;new features of Windows Azure&lt;/a&gt;.  One of the new features available is Remote Desktop access to Windows  Azure role instances. In this posting I will show you how to get  connected to Windows Azure web role using Remote Desktop.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;  &lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;I  suppose you have other deployment settings in place and only Remote  Desktop needs configuring. Open publish dialog of your web role project  in Visual Studio 2010.&amp;nbsp;&lt;/div&gt;&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img alt=&quot;Visual Studio 2010: Windows Azure project deployment settings&quot; border=&quot;0&quot; height=&quot;420&quot; src=&quot;http://weblogs.asp.net/blogs/gunnarpeipman/vs2010-azure-deploy-settings_4C5AEC2E.png&quot; style=&quot;background-image: none; border: 0px none; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;Visual Studio 2010: Windows Azure project deployment settings&quot; width=&quot;440&quot; /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;In the bottom part of this dialog you can see the link Configure Remote Desktop connections… Click on it&lt;/span&gt;.&lt;/div&gt;&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img alt=&quot;Visual Studio 2010: Remote Desktop configuration&quot; border=&quot;0&quot; height=&quot;412&quot; src=&quot;http://weblogs.asp.net/blogs/gunnarpeipman/vs2010-azure-remote-desktop-settings_3C1EFE68.png&quot; style=&quot;background-image: none; border: 0px none; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;Visual Studio 2010: Remote Desktop configuration&quot; width=&quot;415&quot; /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Also  Remote Desktop needs certificate. You can create one from dropdown –  there is option &lt;create…&gt; in the end of options list. After  creating certificate you have to export it to your file system (Start  =&amp;gt; Run =&amp;gt; certmgr.msc).&lt;/create…&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img alt=&quot;certmgr: Export my Remote Desktop certificate&quot; border=&quot;0&quot; height=&quot;346&quot; src=&quot;http://weblogs.asp.net/blogs/gunnarpeipman/vs2010-azure-remote-desktop-certmgr_22874B6E.png&quot; style=&quot;background-image: none; border: 0px none; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;certmgr: Export my Remote Desktop certificate&quot; width=&quot;540&quot; /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;When certificate is exported add it to your hosted service in Windows Azure Portal.&amp;nbsp;&lt;/div&gt;&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img alt=&quot;Windows Azure Portal: My Remote Desktop Certificate&quot; border=&quot;0&quot; height=&quot;407&quot; src=&quot;http://weblogs.asp.net/blogs/gunnarpeipman/vs2010-azure-remote-desktop-cert_3C4B5BD0.png&quot; style=&quot;background-image: none; border: 0px none; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;Windows Azure Portal: My Remote Desktop Certificate&quot; width=&quot;542&quot; /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Now  fill username and password fields in Remote Desktop settings windows in  your Visual Studio and click OK. After deploying your project you can  access your web role instance over Remote Desktop. Just click on your  instance in Windows Azure Portal and select Connect from toolbar.  RDP-file for your web role instance connection will be downloaded and if  you open it you can access your web application. For username and  password use the same username and password you inserted before.&lt;/div&gt;&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img alt=&quot;Windows Azure: Small instance hardware&quot; src=&quot;http://weblogs.asp.net/blogs/gunnarpeipman/windows-azure-instants_thumb_1E04F93A.png&quot; title=&quot;Windows Azure: Small instance hardware&quot; /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;This  is System window of my web role instance. You can see that Small  instance account provided to MSDN Library subscribers has 2.10 Gz AMD  Opteron processor (only one core is for my web app), 1.75 GB RAM and  64bit Windows Server Enterprise Edition.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;  &lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Using Remote Desktop  you can investigate and solve problems when your web application  crashes, also you can make other changes to your web role instance. If  you have more than one instance you should to same changes to all  instances of same web role.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;b&gt;Reference:&lt;/b&gt;&lt;a href=&quot;http://weblogs.asp.net/gunnarpeipman/archive/2010/12/04/windows-azure-connecting-to-web-role-instance-using-remote-desktop.aspx?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+gunnarpeipman+%28Gunnar+Peipman%27s+ASP.NET+blog%29&amp;amp;utm_content=Google+Reader&quot;&gt; http://weblogs.asp.net/gunnarpeipman/archive/2010/12/04/windows-azure-connecting-to-web-role-instance-using-remote-desktop.aspx?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+gunnarpeipman+%28Gunnar+Peipman%27s+ASP.NET+blog%29&amp;amp;utm_content=Google+Reader&lt;/a&gt; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/7201830799544340136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/7201830799544340136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/7201830799544340136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/7201830799544340136'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/windows-azure-connecting-to-web-role.html' title='Windows Azure: Connecting to web role instance using Remote Desktop'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-8613461041743820306</id><published>2010-12-09T00:31:00.001+05:30</published><updated>2010-12-09T00:57:18.672+05:30</updated><title type='text'>How to Resolve “SetConfigurationSettingPublisher needs to be called before FromConfigurationSetting can be used” After Moving to Windows Azure SDK 1.3</title><content type='html'>&lt;h1 class=&quot;title&quot; style=&quot;font-family: Verdana,sans-serif; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;http://blog.smarx.com/posts/how-to-resolve-setconfigurationsettingpublisher-needs-to-be-called-before-fromconfigurationsetting-can-be-used-after-moving-to-windows-azure-sdk-1-3&quot;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;body&quot;&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;If you’re receiving this exception after  migrating a web role from Windows Azure SDK 1.2 to SDK 1.3, this may  have to do with changes associated with the new full IIS model  introduced in SDK 1.3. This post will help you to understand the change  and how to use the &lt;span style=&quot;font-size: small;&quot;&gt;&lt;code&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.cloudstorageaccount.fromconfigurationsetting.aspx&quot;&gt;FromConfigurationSetting&lt;/a&gt;&lt;/code&gt; &lt;/span&gt; method correctly under the full IIS model. If you want to simply go  back to using the Hosted Web Core model (as in previous SDK releases), &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/gg433113.aspx&quot;&gt;you can do that too&lt;/a&gt;.&lt;/div&gt;&lt;h2 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The Full IIS Model&lt;/span&gt;&lt;/h2&gt;&lt;div&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Full IIS in Windows Azure introduces new capabilities, such as &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/gg433110.aspx&quot;&gt;hosting multiple web sites within a single web role&lt;/a&gt; and &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/gg433059.aspx&quot;&gt;advanced IIS configuration&lt;/a&gt;.  For a discussion of the new full IIS hosting model in Windows Azure SDK  1.3 and how it differs from the Hosted Web Core model used previously,  see “&lt;a href=&quot;http://blogs.msdn.com/b/windowsazure/archive/2010/12/02/new-full-iis-capabilities-differences-from-hosted-web-core.aspx&quot;&gt;New Full IIS Capabilities: Differences from Hosted Web Core&lt;/a&gt;” on the Windows Azure blog.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;The following diagram from that post illustrates one difference that impacts how &lt;code&gt;FromConfigurationSetting&lt;/code&gt; is used:&lt;/div&gt;&lt;br /&gt;
&lt;img alt=&quot;full iis app domain model&quot; border=&quot;0&quot; height=&quot;272&quot; src=&quot;http://cdn.blog.smarx.com/images/ca6d791c-2d54-472c-af7a-094af9cbe69e&quot; style=&quot;background-image: none; border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;full iis app domain model&quot; width=&quot;550&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;With the Hosted Web Core model, &lt;code&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleentrypoint.aspx&quot;&gt;RoleEntryPoint&lt;/a&gt;&lt;/code&gt; code (e.g., &lt;code&gt;WebRole.cs&lt;/code&gt;) and web application code (e.g., &lt;code&gt;Default.aspx.cs&lt;/code&gt;  for ASP.NET) were executed in the same app domain. Under full IIS,  these are two distinct app domains. This means that static objects are  no longer shared between these two parts of your application, and that’s  the key to understanding how to use &lt;code&gt;FromConfigurationSetting&lt;/code&gt; in the new full IIS hosting model.&lt;/div&gt;&lt;h2 style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Before: FromConfigurationSetting with Hosted Web Core&lt;/span&gt;&lt;/h2&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;The Hosted Web Core model, where everything ran in the same app domain, lead to a common pattern for initializing &lt;code&gt;CloudStorageAccount&lt;/code&gt; objects. This is how SDK 1.2 code was commonly written:&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;In the &lt;code&gt;OnStart&lt;/code&gt; method of &lt;code&gt;WebRole.cs&lt;/code&gt;:   &lt;span style=&quot;color: #2b91af;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #2b91af;&quot;&gt;CloudStorageAccount&lt;/span&gt;.SetConfigurationSettingPublisher((configName, configSettingPublisher) =&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;{&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var &lt;/span&gt;connectionString =&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #2b91af;&quot;&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; RoleEnvironment&lt;/span&gt;.GetConfigurationSettingValue(configName);&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; configSettingPublisher(connectionString);&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;(Your function may look more complicated than this, but the information in this post still applies.) Then, in &lt;code&gt;Default.aspx.cs&lt;/code&gt; (or an ASP.NET MVC controller):   &lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;var &lt;/span&gt;account = &lt;span style=&quot;color: #2b91af;&quot;&gt;CloudStorageAccount&lt;/span&gt;.FromConfigurationSetting(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;MyConnectionString&quot;&lt;/span&gt;);&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;This code worked, because the call to &lt;code&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.cloudstorageaccount.setconfigurationsettingpublisher.aspx&quot;&gt;SetConfigurationSettingPublisher&lt;/a&gt;&lt;/code&gt; was made in the same app domain as the call to &lt;code&gt;FromConfigurationSetting&lt;/code&gt;. However, under the full IIS hosting model, these are two different app domains.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;After: FromConfigurationSetting with full IIS&lt;/span&gt;&lt;/h2&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;A convenient place to put the call to &lt;code&gt;SetConfigurationSettingPublisher&lt;/code&gt; is in the &lt;code&gt;Application_Start&lt;/code&gt; method, which runs as part of the app domain where all your web application code runs. This method is located in &lt;code&gt;Global.asax.cs&lt;/code&gt;. (If you don’t have a &lt;code&gt;Global.asax.cs&lt;/code&gt;  already, you can add one by right-clicking on the web application  project, choosing “Add,” “New Item,” and then “Global Application  Class.”)   &lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;void &lt;/span&gt;Application_Start(&lt;span style=&quot;color: blue;&quot;&gt;object &lt;/span&gt;sender, &lt;span style=&quot;color: #2b91af;&quot;&gt;EventArgs &lt;/span&gt;e)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;{&lt;span style=&quot;color: #2b91af;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #2b91af;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CloudStorageAccount&lt;/span&gt;.SetConfigurationSettingPublisher((configName,&amp;nbsp; configSettingPublisher) =&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var &lt;/span&gt;connectionString = &lt;span style=&quot;color: #2b91af;&quot;&gt;RoleEnvironment&lt;/span&gt;.GetConfigurationSettingValue(configName);&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&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; configSettingPublisher(connectionString);&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;This is exactly the same code that would have been in &lt;code&gt;WebRole.cs&lt;/code&gt;, just moved to a location that’s part of the web application’s app domain.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;An Alternative&lt;/span&gt;&lt;/h2&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;The combination of &lt;code&gt;SetConfigurationSettingPublisher&lt;/code&gt; and &lt;code&gt;FromConfigurationSetting&lt;/code&gt;  abstracts the location of the configuration setting. Some people use  this to write code that works both inside and outside of Windows Azure,  reading configuration settings from Windows Azure when available and  falling back to &lt;code&gt;web.config&lt;/code&gt; or some other location otherwise.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;If you don’t need this abstraction layer, you can use another method of initializing &lt;/span&gt;&lt;code style=&quot;font-family: Verdana,sans-serif;&quot;&gt;CloudStorageAccount&lt;/code&gt; &lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;objects from configuration settings:&lt;/span&gt;   &lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: left;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;var &lt;/span&gt;account = &lt;span style=&quot;color: #2b91af;&quot;&gt;CloudStorageAccount&lt;/span&gt;.Parse(&lt;span style=&quot;color: #2b91af;&quot;&gt;RoleEnvironment&lt;/span&gt;.GetConfigurationSettingValue(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;MyConnectionString&quot;&lt;/span&gt;));&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Reference : &lt;/span&gt;&lt;a href=&quot;http://blog.smarx.com/posts/how-to-resolve-setconfigurationsettingpublisher-needs-to-be-called-before-fromconfigurationsetting-can-be-used-after-moving-to-windows-azure-sdk-1-3&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;http://blog.smarx.com/posts/how-to-resolve-setconfigurationsettingpublisher-needs-to-be-called-before-fromconfigurationsetting-can-be-used-after-moving-to-windows-azure-sdk-1-3&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/8613461041743820306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/8613461041743820306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/8613461041743820306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/8613461041743820306'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/how-to-resolve-setconfigurationsettingp.html' title='How to Resolve “SetConfigurationSettingPublisher needs to be called before FromConfigurationSetting can be used” After Moving to Windows Azure SDK 1.3'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-901393889523420774</id><published>2010-12-07T21:53:00.001+05:30</published><updated>2010-12-10T00:51:02.984+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Workflow 4.0"/><title type='text'>Hosting workflow services in Windows Azure</title><content type='html'>&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;Since the latest release of the  Windows Azure Development Kit (June), Azure provides support for .NET 4  applications, which is a real important step from the point of adoption,  I believe. &lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;The first thing we wanted to try was to host a XAMLX Workflow Service in a web role on Azure.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;strong&gt;Example workflow service&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;I created a standard Workflow Service that accepted two parameters, on&lt;span&gt;&amp;nbsp; &lt;/span&gt;one operation (Multiply) and returns the result of the multiplication to the client.&lt;span&gt;&amp;nbsp; &lt;/span&gt;This service was called Calc.xamlx. &lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;These are the steps I followed to make my service available.&lt;span&gt;&amp;nbsp; &lt;/span&gt;I added the exceptions, because that’s typically what users will search for &lt;span&gt;J&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;strong&gt;&lt;span lang=&quot;EN-US&quot;&gt;Enable visualization of errors &lt;br /&gt;
&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Standard behavior of web roles, is to hide the exception for the users, browsing to a web page.&amp;nbsp; Therefore, it is advised to add the following in the system.web section of the web.config: &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0pt;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;customErrors&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: red; font-family: consolas; font-size: 9.5pt;&quot;&gt;mode&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;Off&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;strong&gt;&lt;span lang=&quot;EN-US&quot;&gt;Configure handler for Workflow Services &lt;br /&gt;
&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;The typical error one would get,  when just adding the Workflow Service to your web role and trying to  browse it, is the following: &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;The requested url  &#39;/calc.xamlx&#39; hosts a XAML document with root element type  &#39;System.ServiceModel.Activities.WorkflowService&#39;; but no http handler is  configured for this root element type. Please check the configuration  file and make sure that the &#39;system.xaml.hosting/httpHandlers&#39; section  exists and a http handler is configured for root element type  &#39;System.ServiceModel.Activities.WorkflowService&#39;. &lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;em&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;We need to specify the correct HTTP handler that needs to be used for XAMLX files.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Therefore, we link the workflow services and activities to the correct Workflow Service ServiceModel handler. &lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;To solve this, the following needs to be added to the web.config&lt;/span&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;configuration&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;configSections&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&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; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;sectionGroup&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: red; font-family: consolas; font-size: 9.5pt;&quot;&gt;name&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;system.xaml.hosting&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;System.Xaml.Hosting.Configuration.XamlHostingSectionGroup,  System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral,  PublicKeyToken=31bf3856ad364e35&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&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; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;section&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: red; font-family: consolas; font-size: 9.5pt;&quot;&gt;name&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;httpHandlers&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;System.Xaml.Hosting.Configuration.XamlHostingSection,  System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral,  PublicKeyToken=31bf3856ad364e35&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&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; &lt;/span&gt;&lt;!--&lt;/span--&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;sectionGroup&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--&lt;/span--&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;configSections&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;!--&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: green; font-family: consolas; font-size: 9.5pt;&quot;&gt; Removed other sections for clarity -–&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;system.xaml.hosting&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&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; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;httpHandlers&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&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&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;add&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: red; font-family: consolas; font-size: 9.5pt;&quot;&gt;xamlRootElementType&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;System.ServiceModel.Activities.WorkflowService,  System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral,  PublicKeyToken=31bf3856ad364e35&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;httpHandlerType&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;System.ServiceModel.Activities.Activation.ServiceModelActivitiesActivationHandlerAsync,  System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral,  PublicKeyToken=31bf3856ad364e35&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&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&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;add&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: red; font-family: consolas; font-size: 9.5pt;&quot;&gt;xamlRootElementType&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;System.Activities.Activity, System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;httpHandlerType&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;System.ServiceModel.Activities.Activation.ServiceModelActivitiesActivationHandlerAsync,  System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral,  PublicKeyToken=31bf3856ad364e35&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&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; &lt;/span&gt;&lt;!--&lt;/span--&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;httpHandlers&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--&lt;/span--&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;system.xaml.hosting&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;!--&lt;/span--&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;configuration&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0pt;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt; &lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;strong&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;strong&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Enabling metadata exposure of the workflow service &lt;/span&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div&gt; &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;To enable consumers of our  workflow service to generate their proxy classes, we want to expose the  WSDL metadata of the service, by providing the following configuration  section in the web.config. &lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Notice the simplicity of configuration, compared to WCF3.5.&amp;nbsp; Making use of the default behaviors, allows us to only specify what we want to override. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;system.serviceModel&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;serviceHostingEnvironment &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: red; font-family: consolas; font-size: 9.5pt;&quot;&gt;multipleSiteBindingsEnabled&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;true&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt; &amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&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; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;serviceActivations&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&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&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;add&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: red; font-family: consolas; font-size: 9.5pt;&quot;&gt;relativeAddress&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;~/Calc.xamlx&lt;/span&gt;&quot; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: red; font-family: consolas; font-size: 9.5pt;&quot;&gt;service&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;Calc.xamlx&lt;/span&gt;&quot;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: red; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp; factory&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;System.ServiceModel.Activities.Activation.WorkflowServiceHostFactory&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--&lt;/span--&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;serviceActivations&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--&lt;/span--&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;serviceHostingEnvironment&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;behaviors&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&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; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;serviceBehaviors&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&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&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;behavior&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&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; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;serviceMetadata&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: red; font-family: consolas; font-size: 9.5pt;&quot;&gt;httpGetEnabled&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;true&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&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&gt;&lt;!--&lt;/span--&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;behavior&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&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; &lt;/span&gt;&lt;!--&lt;/span--&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;serviceBehaviors&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--&lt;/span--&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;behaviors&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;!--&lt;/span--&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: consolas; font-size: 9.5pt;&quot;&gt;system.serviceModel&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0pt;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: consolas; font-size: 9.5pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;strong&gt;Testing and publishing&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt; &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;After successfully testing locally in the Azure  Development Fabric, I uploaded and deployed the package, using the new  Tools in Visual Studio to my Azure test account.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: left;&quot;&gt;&lt;b&gt;Author : &lt;strong&gt;Sam Vanhoutte, CODit&lt;/strong&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;strong&gt;Taken from: &lt;a href=&quot;http://www.blogger.com/goog_879530331&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;http://www.codit.eu/Blog/post/2010/06/17/Hosting-workflow-services-in-Windows-Azure.aspx&lt;/a&gt;&lt;a href=&quot;http://www.blogger.com/goog_879530331&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span id=&quot;goog_879530327&quot;&gt;&lt;/span&gt;&lt;span id=&quot;goog_879530328&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;http://www.codit.eu/Blog/post/2010/06/17/Hosting-workflow-services-in-Windows-Azure.aspx&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&amp;nbsp;&lt;/a&gt;&lt;/strong&gt;&lt;/b&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: justify;&quot;&gt; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/901393889523420774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/901393889523420774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/901393889523420774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/901393889523420774'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/hosting-workflow-services-in-windows.html' title='Hosting workflow services in Windows Azure'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-4133905346628941915</id><published>2010-12-06T23:20:00.001+05:30</published><updated>2010-12-10T00:51:02.985+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows Workflow 4.0"/><title type='text'>A Developer&#39;s Introduction to Windows Workflow Foundation (WF) in .NET 4</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Check this link below to develop a WWF application&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee342461.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/ee342461.aspx &lt;/a&gt;&lt;/b&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/4133905346628941915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/4133905346628941915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/4133905346628941915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/4133905346628941915'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/developers-introduction-to-windows.html' title='A Developer&#39;s Introduction to Windows Workflow Foundation (WF) in .NET 4'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-6402895006234538015</id><published>2010-12-06T22:59:00.000+05:30</published><updated>2010-12-06T23:00:15.351+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="MVC 2"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Azure"/><title type='text'>Simple MVC 2 App on Windows Azure</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Hi Friends,&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
Want to upload an MVC 2 Application on Windows Azure.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Check this link : &lt;/span&gt;&lt;a href=&quot;http://www.barebonescoder.com/2010/12/simple-mvc-2-app-on-windows-azure/?utm_source=AzureMagic&amp;amp;utm_medium=twitter&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;http://www.barebonescoder.com/2010/12/simple-mvc-2-app-on-windows-azure/?utm_source=AzureMagic&amp;amp;utm_medium=twitter&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/6402895006234538015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/6402895006234538015' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/6402895006234538015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/6402895006234538015'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/simple-mvc-2-app-on-windows-azure.html' title='Simple MVC 2 App on Windows Azure'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-66074871008939677</id><published>2010-12-06T22:56:00.000+05:30</published><updated>2010-12-06T22:57:13.765+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="App Fabric"/><title type='text'>Re-Introducing the Windows Azure AppFabric Access Control Service</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt; If you’re looking for a service that makes it easier to authenticate  and authorize users within your Web sites and services, you should take  another look at the &lt;b&gt;Windows Azure AppFabric Access Control service &lt;/b&gt;(ACS  for short), as some significant updates are in the works (at the time  of this writing).&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt; Opening up your application to be accessed by  users belonging to different organizations—while maintaining high  security standards—has always been a challenge. That problem has  traditionally been associated with business and enterprise scenarios,  where users typically live in directories. The rise of the social Web as  an important arena for online activities makes it increasingly  attractive to make your application accessible to users from the likes  of Windows Live ID, Facebook, Yahoo and Google.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt; With the  emergence of open standards, the situation is improving; however, as of  today, implementing these standards directly in your applications while  juggling the authentication protocols used by all those different  entities is a big challenge. Perhaps the worst thing about implementing  these things yourself is that you’re never done: Protocols evolve, new  standards emerge and you’re often forced to go back and upgrade  complicated, cryptography-ridden authentication code.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt; The ACS  greatly simplifies these challenges. In a nutshell, the ACS can act as  an intermediary between your application and the user repositories (&lt;em&gt;identity providers&lt;/em&gt;, or &lt;em&gt; IP&lt;/em&gt;)  that store the accounts you want to work with. The ACS will take care  of the low-level details of engaging each IP with its appropriate  protocol, protecting your application code from having to take into  account the details of every transaction type. T&lt;b&gt;he ACS supports numerous  protocols such as OpenID, OAuth WRAP, OAuth 2.0, WS-Trust and  WS-Federation.&lt;/b&gt; This allows you to take advantage of many IPs.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;  Outsourcing authentication (and some of the authorization) from your  solution to the ACS is easy. All you have to do is leverage &lt;b&gt;Windows  Identity Foundation (WIF)&lt;/b&gt;—the extension to the Microsoft .NET Framework  that enhances applications with advanced identity and access  capabilities—and walk through a short Visual Studio wizard. You can  usually do this without having to see a single line of code!&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt; Does  this sound Greek to you? Don’t worry, you’re not alone; as it often  happens with identity and security, it’s harder to explain something  than actually do it. Let’s pick one common usage of the ACS, outsourcing  authentication of your Web site to multiple Web IPs, and walk through  the steps it entails.&lt;/div&gt;&lt;h2 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Outsourcing Authentication of a Web Site to the ACS&lt;/h2&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt; Let’s start by taking a vanilla Web site and enabling users to log in using a Google account.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt; Before we get started, let’s make sure we have the prerequisites covered. Here’s what we need:&lt;/div&gt;&lt;ul style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;li&gt;Visual Studio 2010&lt;/li&gt;
&lt;li&gt;Windows Identity Foundation Runtime&lt;/li&gt;
&lt;li&gt;Windows  Identity Foundation SDK and one of the following: Windows 7, Windows  Server 2008, Windows Server 2008 R2 or Windows Vista SP1&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;  Although it’s not a hard requirement, having IIS on the machine will  help; if you don’t have IIS installed, you’ll have to adjust the steps  of the walkthrough here and there.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt; While Visual Studio requires  no introduction, it will probably help to expand a bit on WIF  (pronounced “dub-IF”), and why it’s a prerequisite. (For a thorough  explanation of WIF, see “Programming Windows Identity Foundation”  [Microsoft Press, 2010]).&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt; WIF is an extension to the .NET  Framework that provides you with a new model for dealing with  authentication and user identity, a model that decouples your  application from the details of how authentication takes place.  Traditional authentication systems (such as the ASP.NET Membership  provider APIs) force you to cope with the details of how authentication  takes place. This requires you to use low-level APIs to deal with  low-level constructs such as passwords, certificates and the like. WIF  changes all this by offering a handy abstraction that allows you to  specify an external entity to handle user authentication.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;With  Forms-based authentication, you specify a given page—typically  login.aspx—where requests are redirected whenever the caller is not yet  authenticated. With WIF, you can enlist an external entity—an IP—to be  invoked whenever a user needs authentication. The ways in which the IP  is chosen at design time and engaged at run time follow well-known  protocols. WIF takes care of discovering which protocols should be used  and enforcing communication policies accordingly. Once again, this is  much easier to show than to explain.&lt;/div&gt;&lt;h2 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Create the Initial Solution&lt;/h2&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Open  up Visual Studio. Create a new Web site by selecting File | New | Web  Site. Let’s create a new ASP.NET Web site—but first, be sure that you’ve  selected the Web location as “HTTP” and configured the URL so that it’s  running in IIS (see &lt;strong&gt;Figure 1&lt;/strong&gt;).This will ensure a  smooth run when using the WIF tools. If you have HTTPS available on your  Web server, it’s a good idea to use it; although not strictly necessary  for this walkthrough, it’s highly recommended on production systems and  will save you some warnings from WIF.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;img alt=&quot;image: Selecting an ASP.NET Web Site with HTTP as the Location&quot; src=&quot;http://i.msdn.microsoft.com/gg490345.BertocciWegner_Figure1_hires%28en-us,MSDN.10%29.jpg&quot; title=&quot;Selecting an ASP.NET Web Site with HTTP as the Location&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Figure 1 &lt;strong&gt;Selecting an ASP.NET Web Site with HTTP as the Location&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;When  you hit F5, you’ll see that you have a basic ASP.NET Web site, and by  clicking the “Log In” link you’ll get prompted to enter a username and  password. This is what we’re going to change—instead of using a username  and password and handling authentication directly in the Web site,  we’re going to use WIF to outsource authentication to the ACS. The ACS  will in turn allow us to open up access to external IPs.&lt;/div&gt;&lt;h2 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Configure an ACS Project&lt;/h2&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;To  begin, we need to create a project in the Windows Azure AppFabric LABS  portal. The LABS portal is an environment set up specifically for  allowing the community to access early bits. There’s no cost associated  with AppFabric LABS, but there are also no service-level agreements or  guarantees.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Open your browser and go to &lt;a href=&quot;http://portal.appfabriclabs.com/&quot; id=&quot;ctl00_MTContentSelector1_mainContentContainer_ctl03&quot;&gt;portal.appfabriclabs.com&lt;/a&gt;.  You’ll be prompted to log in with a Windows Live ID. Once logged in,  you’ll need to create a new project—click the “create a project” link.  You’ll have to choose a project name—select something appropriate and  click OK. Once complete, you’ll see an active project name  (“acsdemoproject” in our example)—click it (see &lt;strong&gt;Figure 2&lt;/strong&gt;).&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;img alt=&quot;image: Creating a Project in the Windows Azure AppFabric LABS Portal&quot; src=&quot;http://i.msdn.microsoft.com/gg490345.BertocciWegner_Figure2_hires%28en-us,MSDN.10%29.jpg&quot; title=&quot;Creating a Project in the Windows Azure AppFabric LABS Portal&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Figure 2 &lt;strong&gt;Creating a Project in the Windows Azure AppFabric LABS Portal&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Before  you can outsource authentication to the ACS, you need to define a  service namespace. Think of the service namespace as providing you with  your own slice of the AppFabric LABS environment and—for the ACS—the  unique component for all the URIs of the resources you’ll use when  interacting with the ACS from your application. Everything contained  within the service namespace is yours to control. Click “Add Service  Namespace,” specify a name, choose a zone—in LABS you can only select  “United States (South/Central)”—and click Create. Note that the URIs  used by AppFabric are available on the public Internet and are meant to  uniquely identify services; hence you must choose a namespace that  hasn’t been picked by anybody else.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;It’ll take a few moments, but  after your service namespace activates, you’ll be able to click the  “Access Control” link to start configuring the ACS for your Web site.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Now you’ve made it to the management portal, where you can configure the ACS for your Web sites (see &lt;strong&gt;Figure 3&lt;/strong&gt;).&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;img alt=&quot;image: The Windows Azure AppFabric Access Control Service Management Portal&quot; src=&quot;http://i.msdn.microsoft.com/gg490345.BertocciWegner_Figure3_hires%28en-us,MSDN.10%29.jpg&quot; title=&quot;The Windows Azure AppFabric Access Control Service Management Portal&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Figure 3 &lt;strong&gt;The Windows Azure AppFabric Access Control Service Management Portal&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Click  the “Manage” button to get started. The management portal provides some  guided steps to walk you through the process of getting started, and  that’s just what we’re going to do.&lt;/div&gt;&lt;h2 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Choosing the Identity Providers You Want&lt;/h2&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Click  the “Identity Providers” link. Here we want to configure the various  social IPs we want to leverage from within your application. Windows  Live ID is present in the list by default; let’s add support for Google  accounts.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Click the “Add Identity Provider” link, which will show a  list of providers. Click the “Add” button next to Google. You can  specify a custom image URL for the IP, but go ahead and just click  “Save.” Just like that, we’ve added Google as a recognized source of  user identities.&lt;/div&gt;&lt;h2 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Getting the ACS to Recognize Your Web Site&lt;/h2&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Now  that our IPs have been configured, we need to provide information to  the ACS about our Web site. In identity jargon, we often refer to  applications as “Relying Parties,” an expression that refers to the fact  that the application relies on one or more IPs to take care of  authentication on their behalf. The ACS UI is consistent with this  terminology.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Click the “Relying Party Applications” URL, and then “Add Relying Party Application.” Let’s specify the following information:&lt;/div&gt;&lt;ul style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;li&gt;Name: My Website&lt;/li&gt;
&lt;li&gt;Realm: https://localhost/Website/&lt;/li&gt;
&lt;li&gt;Return URL: https://localhost/Website/&lt;/li&gt;
&lt;li&gt;Token format: SAML 2.0&lt;/li&gt;
&lt;li&gt;Token signing: Use service namespace certificate (typical)&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;The  Token Format field deserves at least a short explanation (we’ll spend  more time on the topic later in the article). A token is an  artifact—typically an XML fragment or something in another serialization  format—used by IPs to indicate that a successful authentication  operation took place. Once a user authenticates, using whatever system  the IP chooses, &lt;b style=&quot;color: #990000;&quot;&gt;the user’s browser will be redirected to the ACS  carrying a token that certifies the user has been recognized. &lt;/b&gt;The token  format and protocol used will be determined according to the IP. &lt;b style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;T&lt;/span&gt;he ACS  will examine the token and, if it finds it satisfactory (more about  this later), will emit a new token of its own and send it back to your  application.&lt;/b&gt; The settings you change in this step determine which token  format you wish the ACS to use for communicating back to your  application. &lt;b style=&quot;color: #990000;&quot;&gt;The ACS is capable of emitting three types of  tokens—SAML2.0, SAML1.1 and SWT&lt;/b&gt;—representing different trade-offs  between expressive power, security, applicability for certain client  types and so on. Just pick SAML2.0 here; the details aren’t imperative  at this point.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;It’s important that &lt;b&gt;the realm corresponds to the  URL for the Web site&lt;/b&gt; we created earlier. &lt;b style=&quot;color: #cc0000;&quot;&gt;Once the authentication with  the IP of choice takes place, the ACS will redirect the user back to  your Web site using the URL you specify here.&lt;/b&gt; Note that, by default,  “Create New Rule Group” is selected—we’ll leverage this in the next  step. Click “Save” once you’re done and return to the management portal.&lt;/div&gt;&lt;h2 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Adding Rules&lt;/h2&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;  Rules are interesting constructs that give you fine-grained control  over user identity information. The scenario we’re enabling right now,  however, doesn’t require the explicit use of rules in order to enable  sign-on from multiple IPs. Therefore, we’ll postpone all explanations  about what rules are to a later section in the article, where they’ll  actually come in handy; here we’ll just go with the default settings.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;  Click the “Rule Groups” link. You should see the rule group created  when we added the relying party application (“Default Rule Group for My  Website”). Select this rule group, click the “Generate Rules” link,  confirm that both Google and Windows Live ID are selected, and then  click the “Generate” button—that’s all you need to do in regard to rules  in this scenario.&lt;/div&gt;&lt;h2 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Collecting the WS-Federation Metadata Address&lt;/h2&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;  At this point, we’re finished configuring the ACS. However, before we  jump back to Visual Studio, let’s grab some information from the  Application Integration page. Click the “Application Integration” link  and copy the “WS-Federation Metadata” URL—we’re going to use this with  WIF to set up our Web site to leverage.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt; Without going into too  much detail, the WS-Federation Metadata document is a machine-readable  description of how the ACS handles authentication. Your application will  need it in order to be configured to outsource authentication to the  ACS.&lt;/div&gt;&lt;h2 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Configuring the Web Site to Use the ACS&lt;/h2&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Return to  Visual Studio and your Web site. We now want to  leverage WIF to  outsource authentication to the ACS, which will in turn enable Google  accounts to access our application. In the Solution Explorer,  right-click the Web site project and select “Add STS Reference.” This  will launch the Federation Utility wizard, which will configure the Web  site to use WIF as the authentication mechanism and the ACS as the  authenticating authority. STS stands for “Security Token Service,” which  indicates a special kind of Web service or Web page that offers an  entry point for requesting tokens; usually every IP or token issuer uses  one.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&amp;nbsp;You can just click “next” most of the time; the steps in  which you’ll have to enter information are precious few. Advance to the  “Security Token Service” step, and specify “Use an existing STS.” Paste  the federation metadata URL you copied from the ACS portal (see &lt;strong&gt;Figure 4&lt;/strong&gt;).&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;img alt=&quot;image: Starting the Federation Utility Wizard in Visual Studio&quot; src=&quot;http://i.msdn.microsoft.com/gg490345.BertocciWegner_Figure4_hires%28en-us,MSDN.10%29.jpg&quot; title=&quot;Starting the Federation Utility Wizard in Visual Studio&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Figure 4 &lt;strong&gt;Starting the Federation Utility Wizard in Visual Studio&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;From  there, leave the defaults, click through to the end and select Finish.  The wizard will add all the required WIF assemblies, add some files to  your Web site and (most importantly) update your web.config with the  information required to engage with the ACS at authentication time.&lt;/div&gt;&lt;h2 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Testing the Authentication Flow&lt;/h2&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;It’s  finally time to give your newly secured Web site a spin! Hit F5. You’ll  immediately be redirected to the Home Realm Discovery page, which  offers the user the chance to pick among the IPs we configured earlier  in the ACS management portal (see &lt;strong&gt;Figure 5&lt;/strong&gt;).&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;img alt=&quot;image: The Home Realm Discovery Page&quot; src=&quot;http://i.msdn.microsoft.com/gg490345.BertocciWegner_Figure5_hires%28en-us,MSDN.10%29.jpg&quot; title=&quot;The Home Realm Discovery Page&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Figure 5 &lt;strong&gt;The Home Realm Discovery Page&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;After  you select Google and enter your Google account credentials, you’ll see  an approval page that requires you to allow the ACS project access—this  is important to understand, as it’s not your Web site that’s requesting  permission, but instead the ACS (see &lt;strong&gt;Figure 6&lt;/strong&gt;).&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;img alt=&quot;image: The Windows Azure AppFabric Access Control Service Asking for Permission to Get Information from Google&quot; height=&quot;97&quot; src=&quot;http://i.msdn.microsoft.com/gg490345.BertocciWegner_Figure6_hires%28en-us,MSDN.10%29.jpg&quot; title=&quot;The Windows Azure AppFabric Access Control Service Asking for Permission to Get Information from Google&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Figure 6 &lt;strong&gt;The Windows Azure AppFabric Access Control Service Asking for Permission to Get Information from Google&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Once you’ve allowed the ACS the access it requires, you’ll get redirected back to the Web site (see &lt;strong&gt;Figure 7&lt;/strong&gt;). That’s it—you’re logged in!&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;img alt=&quot;image: Success! Logging in to the Web Site&quot; src=&quot;http://i.msdn.microsoft.com/gg490345.BertocciWegner_Figure7_hires%28en-us,MSDN.10%29.jpg&quot; title=&quot;Success! Logging in to the Web Site&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Figure 7 &lt;strong&gt;Success! Logging in to the Web Site&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;If  you want to verify that the same experience would work with Windows  Live ID, the other IP configured in your namespace, all you need to do  is close the browser, hit F5 again and at the Home Realm Discovery page  pick Windows Live ID instead of Google.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;If you have any experience  in enabling authentication protocols on Web sites, you know that,  traditionally, adding an IP means studying its protocols and API,  writing fairly challenging code and testing, testing, testing before  getting it right. And every additional IP requires the same, plus the  extra complication of understanding from the request which protocol is  being used.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Here, we didn’t need to do any of that; in fact, you  may have noticed that we didn’t write a single line of code. If we want  to add extra identity providers, all we’ll need to do is go through a  couple of screens on the ACS management portal, with no impact  whatsoever on the application itself. If the IPs evolve their protocols,  the ACS will change its code to accommodate the new conditions, and our  application won’t even know anything changed at all.&lt;/div&gt;&lt;h2 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;The ACS: Structure and Features&lt;/h2&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Now  that you’ve had a chance to experience firsthand the power of the ACS,  you’re ready for a brief overview of what the ACS really is and what  makes it tick. This will require a bit of theory, but you’ll discover  that you already learned most of what you need to know while walking  through the scenario described earlier.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;The ACS operates according to the principles of &lt;em&gt;claims-based identity&lt;/em&gt;.  The main idea behind claims-based identity is that every entity in an  identity transaction plays one or more canonical roles, taken from a  short list of four: subject, identity provider (IP), relying party (RP)  and federation provider (FP). In the walkthrough, you’ve seen all those  in action. The interaction among those entities boils down to  requesting, obtaining and forwarding security tokens, as shown in &lt;strong&gt;Figure 8&lt;/strong&gt;.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;img alt=&quot;image: Requesting, Obtaining and Forwarding Security Tokens&quot; src=&quot;http://i.msdn.microsoft.com/gg490345.BertocciWegner_Figure8_hires%28en-us,MSDN.10%29.jpg&quot; title=&quot;Requesting, Obtaining and Forwarding Security Tokens&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Figure 8 &lt;strong&gt;Requesting, Obtaining and Forwarding Security Tokens&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;The  subject is the role played by the user—that is, the entity that needs  to be authenticated. The IP is the entity that stores the account for  the subject: username, credentials, attributes and so on. The IP uses  one or more STSes for exposing its authentication capabilities and for  issuing tokens. The RP is the application that the subject wants to use.  Those three roles are enough for describing the most basic case: the  subject obtains a token from an IP that the RP trusts, uses that token  with the RP and the authentication is done.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;One thing we didn’t  cover during the walkthrough is that the tokens aren’t just representing  the successful outcome of the authentication operation, but they’re  also used to transport attributes describing the user: name, e-mail  address roles and anything else that the RP needs to know and that the  IP makes available. If you recall the properties of signed security  tokens, you’ll see how those attributes can’t be tampered with and are  cryptographically guaranteed to come from a specific IP. That means that  one RP can choose to consider valid the attributes it receives  according to how much it trusts the IP that originated them. Think of  real-life situations in which you need to prove something—for example,  that you actually live at a certain address. Companies often ask you to  provide a utility bill, mainly because they trust the utility company  more than they trust you. The information is the same (the address), but  the IP that produced it makes all the difference.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;When an attribute is issued as part of a security token, we call that attribute a &lt;em&gt;claim&lt;/em&gt;.  This concept is so important that it gives the name to the entire  approach, and practically everything the ACS does revolves around  claims. We just need to get another concept out of the way and then  we’ll go in the details.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Although you could use the subject-RP-IP  roles for modeling every system, in practice it’s not very handy. If one  RP trusts multiple IPs, as was the case in our scenario, the model  would require the RP to maintain multiple relationships, handle  different protocols and so on. This is where the fourth role, the FP,  comes into play. An FP is an &lt;em&gt;intermediary&lt;/em&gt; between one or more RPs and one or more IPs, as shown in &lt;strong&gt;Figure 9&lt;/strong&gt;.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;img alt=&quot;image: The Federation Provider as an Intermediary&quot; src=&quot;http://i.msdn.microsoft.com/gg490345.BertocciWegner_Figure9_hires%28en-us,MSDN.10%29.jpg&quot; title=&quot;The Federation Provider as an Intermediary&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Figure 9 &lt;strong&gt;The Federation Provider as an Intermediary&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;The  FP trusts multiple IPs, behaving like an application and expecting  tokens from the IPs. In turn, the RP trusts the FP; to that purpose the  FP exposes its own STS, which issues tokens for the RP. The FP takes  care of the details of engaging with the various IPs, while always  presenting to the RP the same façade, so IPs can be on-boarded and  de-provisioned without affecting the RP. The FP can also transform the  claims coming from different IPs to make them more useful for the RP. It  can normalize different incoming claim types, add extra claims such as  roles or permissions, and so on.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;As you may have guessed by now, the ACS plays the role of the FP, as illustrated in &lt;strong&gt;Figure 10&lt;/strong&gt;.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;img alt=&quot;image: The Windows Azure AppFabric Access Control Service Playing the Role of Federation Provider&quot; src=&quot;http://i.msdn.microsoft.com/gg490345.BertocciWegner_Figure10_hires%28en-us,MSDN.10%29.jpg&quot; title=&quot;The Windows Azure AppFabric Access Control Service Playing the Role of Federation Provider&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Figure 10 &lt;strong&gt;The Windows Azure AppFabric Access Control Service Playing the Role of Federation Provider&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;When  you create a service namespace, you get your very own full-featured FP  in the cloud. Out of the box, that FP includes four different STS  endpoints, all offering different protocols that are suitable for  different application types: WS-Federation for signing in to Web sites;  WS-Trust for invoking SOAP Web services; OAuth WRAP and OAuth 2 for REST  Web services; and Web APIs in general. Those are the endpoints you use  to configure your application to outsource authentication.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;The ACS  is already pre-configured to trust various Web IPs, as we’ve seen, and  it facilitates the experience of choosing among them by providing pages  or embeddable code for them. In addition to that, the ACS is able to  establish trust with commercial IPs such as Active Directory Federation  Services 2.0 (AD FS 2.0), which expose STS endpoints themselves. In  practice, the ACS exposes the counterpart of the “Add STS reference”  functionality you’ve seen when configuring your Web site to trust the  ACS. Using AD FS 2.0 as an IP is extremely interesting, as it allows you  to reuse user accounts whenever you want, including those in Windows  Azure-hosted applications that would traditionally be valid only  on-premises. Another interesting feature of business IPs is that they  usually provide much richer claims sets that can be used for adding  sophisticated identity-driven logic in the token processing.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;The  ACS allows you to describe your claims transformation login in the form  of rules, a simple but powerful mechanism. For example, you can assign a  role to a user as simply as entering something along the lines of “if  the incoming name identifier claim has value X, please add an output  claim of type role and value Y.”&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;All of the functionality  discussed here can be accessed through the management portal you used in  the walkthrough; alternatively, there’s an OData-based management  service that gives you full control on the ACS settings while  integrating with your existing processes.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;As trite as it may  sound, we did barely scratch the surface of what the ACS can do for you.  We invite you to check out the hands-on lab in the identity developer  training kit and the Windows Azure platform training kit for exploring  more scenarios in greater detail. If you want to simplify access  management for your Web site, Web service or Web API, the ACS can help!&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: left;&quot;&gt;&lt;b&gt;Content Taken from : &lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/gg490345.aspx&quot;&gt;http://msdn.microsoft.com/en-us/magazine/gg490345.aspx&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: left;&quot;&gt;&lt;b&gt;Author :&lt;/b&gt;&lt;a href=&quot;http://msdn.microsoft.com/magazine/ee532098.aspx?sdmr=VittorioBertocci&amp;amp;sdmi=authors&quot; id=&quot;ctl00_MTContentSelector1_mainContentContainer_ctl01&quot;&gt; Vittorio Bertocci&lt;/a&gt; and &lt;a href=&quot;http://msdn.microsoft.com/magazine/ee532098.aspx?sdmr=WadeWegner&amp;amp;sdmi=authors&quot; id=&quot;ctl00_MTContentSelector1_mainContentContainer_ctl02&quot;&gt;Wade Wegner&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/66074871008939677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/66074871008939677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/66074871008939677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/66074871008939677'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/re-introducing-windows-azure-appfabric.html' title='Re-Introducing the Windows Azure AppFabric Access Control Service'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-3565203548410426393</id><published>2010-12-06T22:48:00.000+05:30</published><updated>2010-12-06T22:57:24.847+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Sharepoint 2010"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Azure"/><title type='text'>Pushing Content from SharePoint to Windows Azure Storage</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Hi Friends,&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Want to push Sharepoint Content onto Windows Azure Storage? &lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Check the link below for more details&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/gg490343.aspx&quot;&gt;http://msdn.microsoft.com/en-us/magazine/gg490343.aspx&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/3565203548410426393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/3565203548410426393' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/3565203548410426393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/3565203548410426393'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/pushing-content-from-sharepoint-to.html' title='Pushing Content from SharePoint to Windows Azure Storage'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-5691294059287937878</id><published>2010-12-05T23:12:00.001+05:30</published><updated>2010-12-06T22:57:45.493+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="VM Role"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Azure"/><title type='text'>New Full IIS Capabilities: Differences from Hosted Web Core (HWC)</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;The new Windows Azure SDK 1.3 supports Full IIS, allowing your web  roles to access the full range of web server features available in an  on-premise IIS installation. However if you choose to deploy your  applications to Full IIS, there are a few subtle differences in  behaviour from the Hosted Web Core model which you will need to  understand.&amp;nbsp;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;font-family: Verdana,sans-serif;&quot;&gt;What is Full IIS?&lt;/h3&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Windows Azure&#39;s Web Role has always allowed you to deploy web sites  and services. However many people may not have realised that the Web  Role did not actually run the full Internet Information Services (IIS).  Instead, it used a component called Hosted Web Core (HWC), which as its  name suggests is the core engine for serving up web pages that can be  hosted in a different process. For most simple scenarios it doesn&#39;t  really matter if you&#39;re running in HWC or IIS. However there are a  number of useful capabilities that only exist in IIS, including support  for multiple sites or virtual applications and activation of WCF  services over non-HTTP transports through Windows Activation Services.&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;One of the many announcements we made at PDC 2010 is that Windows  Azure Web Roles will support Full IIS. This functionality is now  publicly available and included in &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7a1089b6-4050-4307-86c4-9dadaa5ed018&quot; target=&quot;_blank&quot;&gt;Windows Azure SDK v1.3&lt;/a&gt;. To tell the Windows Azure SDK that you want to run under Full IIS rather than HWC, all you need to do is add a valid &lt;b&gt;&lt;sites&gt;&lt;/sites&gt;&lt;/b&gt;  section to your ServiceDefinition.csdef file. Visual Studio creates  this section by default when you create a new Cloud Service Project, so  you don&#39;t even need to think about it!&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;A simple &lt;b&gt;&lt;sites&gt; &lt;/sites&gt;&lt;/b&gt;section defining a single website looks like this:&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyrm2oWaXDS7tZS_yPmFzozOhmMo3Cf0k6PVsjYgA2oS5-1Ul3qlZsrSBEiG7ychT6ElaF-4BSb1FfFOjEgt0w99NhJu7o-pCDtbE1xsrbTKA0z31Dzzd3-fZx0tU5ASpUbF8Y6cSPNt8/s1600/Capture.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;196&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyrm2oWaXDS7tZS_yPmFzozOhmMo3Cf0k6PVsjYgA2oS5-1Ul3qlZsrSBEiG7ychT6ElaF-4BSb1FfFOjEgt0w99NhJu7o-pCDtbE1xsrbTKA0z31Dzzd3-fZx0tU5ASpUbF8Y6cSPNt8/s640/Capture.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;You can easily customise this section to define multiple web sites,  virtual applications or virtual directories, as shown in this example:&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcwifUoGq9v8YXFxiPooFZwfyQ2RHRcNuriozSwJBZDd-0oIDoYGeaEro5jJJykmP2ZLXjBa_UB7ipDc8pDFh3J4rnb17JhHG4pwVKkW-fWhG_rxGzZzU8VKWHjtoU-y7tQ3pZS_7JhCs/s1600/Capture1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;344&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcwifUoGq9v8YXFxiPooFZwfyQ2RHRcNuriozSwJBZDd-0oIDoYGeaEro5jJJykmP2ZLXjBa_UB7ipDc8pDFh3J4rnb17JhHG4pwVKkW-fWhG_rxGzZzU8VKWHjtoU-y7tQ3pZS_7JhCs/s640/Capture1.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;After working with early adopter customers with Full IIS for the last  couple of months, I&#39;ve found that it&#39;s now easier than ever to port  existing web applications to Windows Azure. However I&#39;ve also found a  few areas where you&#39;ll need to do things a bit differently to you did  with HWC due to the different hosting model.&lt;/div&gt;&lt;br/&gt;&lt;br /&gt;
&lt;h3 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;New Hosting Model&lt;/h3&gt;&lt;br/&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;There is a significant difference in how your code is hosted in  Windows Azure depending on whether you use HWC or Full IIS. Under HWC,  both the &lt;b&gt;RoleEntryPoint&lt;/b&gt; methods (e.g. the &lt;b&gt;OnStart &lt;/b&gt;method of your &lt;b&gt;WebRole&lt;/b&gt; class which derives from &lt;b&gt;RoleEntryPoint&lt;/b&gt;) and the web site itself run under the &lt;b&gt;WaWebHost.exe&lt;/b&gt; process. However with full IIS, the &lt;b&gt;RoleEntryPoint&lt;/b&gt; runs under &lt;b&gt;WaIISHost.exe&lt;/b&gt;, while the web site runs under a normal IIS &lt;b&gt;w3wp.exe&lt;/b&gt;  process. This can be somewhat unexpected, as all of your code belongs  to the same Visual Studio project and compiles into the same DLL. The  following diagram shows how a web project compiled into a binary called &lt;b&gt;WebRole1.dll&lt;/b&gt; is hosted in Windows Azure under HWC and IIS.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;a href=&quot;http://www.microsoft.com/windowsazure/compute/default.aspx&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;316&quot; src=&quot;http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-13-25/7652.IIS.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;This difference can have some unexpected implications, as described in the following sections. &lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;/div&gt;&lt;h3 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Reading config files from RoleEntryPoint and your web site&lt;/h3&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Even though the preferred way of storing configuration in Windows  Azure applications is in the ServiceConfiguration.cscfg file, there are  still many cases when you may want to use a normal .NET config file -  especially when configuring .NET system components or reusable  frameworks. In particular whenever you use Windows Azure diagnostics you  need to configure the &lt;b&gt;DiagnosticMonitorTraceListener&lt;/b&gt; in a .NET config file.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;When you create your web role project, Visual Studio creates a  web.config file for your .NET configuration. While your web application  can access this information, your &lt;b&gt;RoleEntryPoint &lt;/b&gt;code cannot-because it&#39;s not running as a part of your web site. As mentioned earlier, it runs under a process called &lt;b&gt;WaIISHost.exe&lt;/b&gt;, so it expects its configuration to be in a file called &lt;b&gt;WaIISHost.exe.config. &lt;/b&gt;&amp;nbsp;Therefore,  if you create a file with this name in the your web project and set the  &quot;Copy to Output Directory&quot; property to &quot;Copy Always&quot; you&#39;ll find that  the &lt;b&gt;RoleEntryPoint &lt;/b&gt;can read this happily.&lt;b&gt; &lt;/b&gt;This is one of the only cases I can think of where you&#39;ll have two .NET configuration files in the same project!&lt;/div&gt;&lt;h3 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Accessing Static Members from RoleEntryPoint and your web site&lt;/h3&gt;&lt;div&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Another implication of this change is that any AppDomain-scoped data  such as static variables will no longer be shared between your  RoleEntryPoint and your web application. This could impact your  application in a number of ways, but there is one scenario which is  likely to come up a lot if you&#39;re migrating existing Windows Azure  applications to use Full IIS. If you&#39;ve used the CloudStorageAccount  class before you&#39;ve probably used code like this to initialise an  instance from a stored connection string:&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;var storageAccount = CloudStorageAccount.FromConfigurationSetting(&quot;ConnectionString&quot;);&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;Before this code will work, you need to tell the &lt;b&gt;CloudStorageAccount&lt;/b&gt; where it should get its configuration from. Rather than just defaulting to a specific configuration file, the &lt;b&gt;CloudStorageAccount&lt;/b&gt;  requires you set a delegate that can get the configuration from  anywhere you want. So to get the connection string from  ServiceConfiguration.cscfg you could use this code:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) =&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; configSetter(RoleEnvironment.GetConfigurationSettingValue(configName));&lt;br /&gt;
});&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;If you&#39;re using HWC with previous versions of the SDK (or if you deleted the &lt;b&gt;&lt;sites&gt;&lt;/sites&gt;&lt;/b&gt; configuration setting with SDK 1.3), you can happily put this code in &lt;b&gt;WebRole.OnStart&lt;/b&gt;. However as soon as you move to Full IIS, the call to &lt;b&gt;CloudStorageAccount.FromConfigurationSetting &lt;/b&gt;will fail with an &lt;b&gt;InvalidOperationException:&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; padding-left: 30px;&quot;&gt;&lt;b&gt;&lt;i&gt;SetConfigurationSettingPublisher needs to be called before FromConfigurationSetting can be used&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; padding-left: 30px;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&quot;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;But I did call it!&quot; you&#39;ll scream at your computer (well at least  that&#39;s what I did). And indeed you did-however you called it in an  AppDomain in the &lt;/span&gt;&lt;b style=&quot;font-family: Verdana,sans-serif;&quot;&gt;WaIISHost.exe&lt;/b&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt; process, which has no effect of  your web site hosted in an entirely different AppDomain under IIS. The  solution is to make sure you call &lt;/span&gt;&lt;b style=&quot;font-family: Verdana,sans-serif;&quot;&gt;CloudStorageAccount.SetConfigurationSettingPublisher&lt;/b&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt; and &lt;/span&gt;&lt;b style=&quot;font-family: Verdana,sans-serif;&quot;&gt;CloudStorageAccount.FromConfigurationSetting&lt;/b&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;  within the same AppDomain, most likely from your web site. While there  used to be some issues with accessing Windows Azure SDK classes in your&lt;/span&gt;&lt;b style=&quot;font-family: Verdana,sans-serif;&quot;&gt; Application_Start &lt;/b&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;event, these no longer apply and this is a great place to initialise your configuration setting publisher.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Or alternatively, as long as you&#39;re happy to use the  ServiceConfiguration.cscfg file for your connection strings, you can  avoid setting up this delegate altogether by replacing the call to&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;b&gt;CloudStorageAccount.FromConfigurationSetting(...)&lt;/b&gt; with this:&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;var storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue(&quot;ConnectionString&quot;));&lt;/b&gt;&lt;/div&gt;&lt;h3 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&amp;nbsp;&lt;/h3&gt;&lt;h3 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Securing resources for different web sites and applications&lt;/h3&gt;&lt;div&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;One final thing to note is that if you configure your Web Role to run  multiple sites or virtual applications, each will run in its own  Application Pool and under its own user account. This provides you with a  lot of flexibility-for example you could grant different virtual  applications with access to different resources such as file system  paths or certificates. If you want to take advantage of this you can  leverage another new SDK 1.3 feature and specify a startup task to run  under elevated privileges. This task could launch a PowerShell script  that sets access control lists which allows each of your applications to  access the resources it needs.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;h3 style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Conclusion &lt;/h3&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;The option to use Full IIS with Windows Azure Web Roles gives you  access to a lot of new functionality that makes it easier to migrate  existing IIS-based applications and also gives you more options when  developing new applications. With a better understanding of the  underlying hosting and security model, I hope you&#39;re able to use these  new features with fewer development headaches.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;b&gt;Reference: &lt;a href=&quot;https://blogs.msdn.com/b/windowsazure/archive/2010/12/02/new-full-iis-capabilities-differences-from-hosted-web-core.aspx&quot;&gt;https://blogs.msdn.com/b/windowsazure/archive/2010/12/02/new-full-iis-capabilities-differences-from-hosted-web-core.aspx&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/5691294059287937878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/5691294059287937878' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/5691294059287937878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/5691294059287937878'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/new-full-iis-capabilities-differences.html' title='New Full IIS Capabilities: Differences from Hosted Web Core (HWC)'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyrm2oWaXDS7tZS_yPmFzozOhmMo3Cf0k6PVsjYgA2oS5-1Ul3qlZsrSBEiG7ychT6ElaF-4BSb1FfFOjEgt0w99NhJu7o-pCDtbE1xsrbTKA0z31Dzzd3-fZx0tU5ASpUbF8Y6cSPNt8/s72-c/Capture.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-3358195412510831775</id><published>2010-12-02T00:22:00.001+05:30</published><updated>2010-12-05T23:56:11.924+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="App Fabric"/><title type='text'>App Fabric ACS -- Explained clearly.</title><content type='html'>&lt;h3 style=&quot;color: blue; font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;AppFab:ACS&lt;/h3&gt;&lt;div&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;I’m going to assume you understand a little of the basics of federation for this part of the post. If you don’t -&amp;nbsp; read my &lt;a href=&quot;http://blogs.msdn.com/b/plankytronixx/archive/2010/11/05/primer-federated-identity-in-a-nutshell.aspx&quot;&gt;federation primer&lt;/a&gt; to get yourself up to speed.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;When  you place an instance in Azure and you “protect” it using AppFab:ACS,  you are typically crossing an organisational boundary. There are reasons  you might not be doing that – which we’ll come to in a moment. For now,  let’s assume you are say, a SaaS service provider. You have written the  most fantastic expense submission application and everybody wants to  use it.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;You don’t want to go to the trouble of  having to manage the users. You want to provide the service. So you set  up federation trusts with those companies that want to use your service.  They create the users, set their passwords, determine if the accounts  are enabled or disabled. They delete the accounts when they are no  longer relevant, they set password complexity policy, expiration policy  and so on. If a user forgets their password they go to their own  company’s helpdesk to get it reset, not yours.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;They  do this &lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;by configuring a service that sits on top of their Active  Directory called Active Directory Federation Services 2.0 (ADFS 2.0).  &lt;/span&gt;&lt;/b&gt;You in your turn configure the Windows Azure Application Fabric’s Access  Control Service (AppFab:ACS) with details of your application and vice  versa, you configure your application with details of your partition of  AppFab:ACS.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;You then set up a federation trust with  any company that wants to access your application. This involves the  exchange of URLs and certificates between their ADFS2 server and your  partition of AppFab:ACS. There are metadata endpoints to simplify this  process. Of course, you could set this up between your own company’s  ADFS2 server and your own instance of AppFab:ACS, as shown below:&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;480&quot; src=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-40-06-metablogapi/8836.image_5F00_thumb_5F00_3D306C7D.png&quot; style=&quot;background-image: none; border: 0px none; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Now, when a user from your application wants to use the application you have deployed to the cloud,&lt;span style=&quot;color: blue;&quot;&gt; &lt;/span&gt;&lt;b style=&quot;color: blue;&quot;&gt;it will be &lt;/b&gt;&lt;i&gt;&lt;b style=&quot;color: blue;&quot;&gt;as&lt;/b&gt;&lt;b style=&quot;color: blue;&quot;&gt; if the application lives inside your AD&lt;/b&gt;.&lt;/i&gt; It doesn’t, but the experience they would have is like this:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;ol style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;li&gt;     It’s 09:00, Fred comes in to the office, hits CTRL-ALT-DEL and enters his AD credentials to log in to the domain.   &lt;/li&gt;
&lt;li&gt;     It’s  10:00 and he now needs to enter his expenses. He clicks a desktop icon  which is a URL shortcut to the application in the cloud.   &lt;/li&gt;
&lt;li&gt;     The application opens, says “Welcome back Fred” and he uses the application to submit his expenses.   &lt;/li&gt;
&lt;/ol&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;He  was never prompted for credentials because of the way the dance works  with federation/ADFS2 and Active Directory. The dance is explained in my  &lt;a href=&quot;http://blogs.msdn.com/b/plankytronixx/archive/2010/11/05/primer-federated-identity-in-a-nutshell.aspx&quot;&gt;federation primer&lt;/a&gt;, but what essentially happens is this:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;ol style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;     Fred clicks the icon and his browser takes him to the application   &lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;     The application redirects his browser to your partition of AppFab:ACS   &lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;     AppFab:ACS sees that &lt;b style=&quot;color: #cc0000;&quot;&gt;Fred has come from its federation partner &lt;/b&gt;and &lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;redirects Fred&#39;s browser to his own ADFS2 server.&lt;/span&gt;&lt;/b&gt;   &lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;     On  trying to reach the ADFS2 server, &lt;b style=&quot;color: #cc0000;&quot;&gt;an authentication takes place&lt;/b&gt;. It’s  all built-in to Windows and done through &lt;b&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;Kerberos. &lt;/span&gt;&lt;/b&gt;It’s entirely  invisible to Fred as a user, the same as when he goes to a domain-joined  IIS machine using Windows authentication. The authentication just works  under the covers.   &lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;     On  successful authentication, &lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;the ADFS2 server pushes Fred back to  AppFab:ACS and appends a SAML token which it encrypts and digitally  signs.&lt;/span&gt;&lt;/b&gt; If you need to understand encryption and signatures, read my &lt;a href=&quot;http://blogs.msdn.com/b/plankytronixx/archive/2010/10/23/crypto-primer-understanding-encryption-public-private-key-signatures-and-certificates.aspx&quot;&gt;crypto primer&lt;/a&gt;.   &lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;     &lt;b&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;AppFab:ACS  receives the token, decrypts it and checks the digital signature. It is  now assured the token has been issued by its federation partner.&lt;/span&gt;&lt;/b&gt;   &lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;     AppFab:ACS  creates a new token and copies the claims in the original token in to  the new token. At this point it might also do something called &lt;i&gt;&lt;b style=&quot;color: blue;&quot;&gt;claims transformation.&lt;/b&gt; &lt;/i&gt;If you need to understand this – again, read the &lt;a href=&quot;http://blogs.msdn.com/b/plankytronixx/archive/2010/11/05/primer-federated-identity-in-a-nutshell.aspx&quot;&gt;federation primer&lt;/a&gt;.   &lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;     It  digitally signs and encrypts the token (optional) and redirects Fred’s  browser back to the application it started appending the new SAML token.   &lt;/li&gt;
&lt;li&gt;&lt;div&gt;&lt;/div&gt;&lt;b&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;The  application decrypts the token and checks the signature. It verifies  the token was definitely issued by your partition of AppFab:ACS and  grants access to Fred.&lt;/span&gt;&lt;/b&gt; Fred never had to enter a password, other than  the password he entered when he logged on to AD at 09:00 when he started  work.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Taken from Link :&lt;/span&gt;&lt;a href=&quot;http://blogs.msdn.com/b/plankytronixx/archive/2010/11/06/difference-between-an-azure-app-domain-joined-to-your-active-directory-and-an-azure-app-joined-to-your-active-directory-through-appfab-acs.aspx&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt; &lt;b&gt;http://blogs.msdn.com/b/plankytronixx/archive/2010/11/06/difference-between-an-azure-app-domain-joined-to-your-active-directory-and-an-azure-app-joined-to-your-active-directory-through-appfab-acs.aspx &lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Article written by: Planky&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/3358195412510831775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/3358195412510831775' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/3358195412510831775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/3358195412510831775'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/app-fabric-acs-explained-clearly.html' title='App Fabric ACS -- Explained clearly.'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-4571727977880411399</id><published>2010-12-02T00:05:00.000+05:30</published><updated>2010-12-05T23:56:29.429+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="ADFS"/><title type='text'>Why you SHOULD NOT deploy an AD domain controller using Azure Connect with VM Role</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;I’ve heard a lot of talk recently about the forthcoming &lt;a href=&quot;http://www.microsoft.com/windowsazure/virtualnetwork/default.aspx&quot;&gt;Windows Azure Connect&lt;/a&gt; service, combined with the soon-to-be-released-to-CTP of&lt;b&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt; &lt;/span&gt;&lt;a href=&quot;http://www.microsoft.com/windowsazure/compute/default.aspx&quot; style=&quot;color: #cc0000;&quot;&gt;VM Role&lt;/a&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;  &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;giving the possibility of hosting an Active Directory Domain Controller  in the cloud&lt;/span&gt;.&lt;/span&gt;&lt;/b&gt; Although technically feasible, this post is designed to  tell you why you &lt;em&gt;shouldn’t&lt;/em&gt; do that.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;  &lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;The Web Role,  Worker Role and VM Role all include local storage. Even a Windows Server  at idle is actually doing quite a lot and making constant updates to  the disks – and so it is with an instance deployed to the cloud as well.  &lt;b&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;In Windows Azure, the state of a virtual machine (an instance) is not  guaranteed if ever it restarts because of some sort of failure. &lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;Web and  Worker Roles do persist the OS state across re-starts generated by  automated updates; ones initiated by the fabric. &lt;/span&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;With the VM Role there  is no automated update process. It’s down to the owner of the VM Role to  keep it up-to-date.&lt;/span&gt;&lt;/b&gt; &lt;u&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Yes – there is a process for this which involves a  differencing disk that is added to the base VHD that you supply when you  first startup a VM Role in Windows Azure.&lt;/span&gt;&lt;/b&gt;&lt;/u&gt; However, the problem really  exists with failures.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;  &lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;A failure of a VM Role can be caused by  any number of things. Power Supply failure to the rack, hard drive  head-crash, failure of the hardware server the VM is hosted on plus a  decent range of other hardware problems. The same for software. As they  say “&lt;b style=&quot;color: #cc0000;&quot;&gt;there’s no such thing as bug-free software”&lt;/b&gt;. Every so often the  host OS or even the guest OS – the OS running in the VM you created,  could happen across an unusual set of conditions while in kernel mode  for which there is no handler.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Well, if there is no handler, it means  nobody thought such a condition would ever occur. The default behaviour  of the kernel is to assume something has gone wrong with the kernel  itself: it’d be dangerous to continue with a kernel in an unknown state.  Think of the damage that could be caused. And so control is handed to a  special handler – the one that causes the blue-screen fatal bugcheck.  The resulting dump file may be useful in debugging what caused the  problem &lt;em&gt;after the event&lt;/em&gt;, after the operating system was stopped  in its tracks by the bugcheck code. But this could happen to either the  host OS or your VM.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;  &lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;When it does happen, the heartbeat that is  emitted to the fabric by a special &lt;span style=&quot;color: blue;&quot;&gt;Windows Azure Agent&lt;/span&gt; installed in  every instance managed by the cloud will stop&lt;/span&gt;&lt;/b&gt;. Eventually the fabric  will recognise a timeout has occurred. It’s first concern is to get a  new responsive instance up and running. It is very likely it won’t be on  a host even in the same rack, let alone exactly the same host.  Therefore, no guarantee is ever given for these situations that state  will be preserved.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;  &lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;The fabric will take the base VHD, plus the  collection of differencing disks (the ones that contain your OS updates)  and “boot” that back in to the configuration specified in your service  model. This diagram explains the problem.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;  &lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;  &lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;480&quot; src=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-40-06-metablogapi/2642.image_5F00_thumb_5F00_3B5FE181.png&quot; style=&quot;background-image: none; border-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;  &lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Use the numbered points in the diagram to follow along:&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;  &lt;/div&gt;&lt;ol style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;li&gt;The base VHD plus the differencing VHD is used to create… &lt;/li&gt;
&lt;li&gt;..a running instance of a Domain Controller as a Windows Azure VM Role &lt;/li&gt;
&lt;li&gt;The  downward pointing green arrow represents the life of this Domain  Controller. Let’s assume the life between instantiating the VM and the  catastrophic failure (at step 5)&lt;b&gt; is 61 days&lt;/b&gt; (or longer). &lt;/li&gt;
&lt;li&gt;&lt;b style=&quot;color: #cc0000;&quot;&gt;As  time advances, more and more changes are written to the Domain  Controller. &lt;/b&gt;In the diagram I have shown this as being performed by a  series of administrators. In reality&amp;nbsp; though, it doesn’t matter how the  changes get to the DC. Either directly or because of AD replication, say  from an on-premise DC. The rules for hanging on to objects are the  same. Deleted objects are tombstoned. &lt;/li&gt;
&lt;li&gt;A &lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;catastrophic failure &lt;/span&gt;&lt;/b&gt;of some description occurs and the instance immediately goes offline. &lt;/li&gt;
&lt;li style=&quot;color: #cc0000;&quot;&gt;&lt;b&gt;The  Windows Azure Fabric recognizes the absence of the heartbeat and builds  a new instance from the base and differencing VHDs. These VHDs are used  to create a new instance… &lt;/b&gt;&lt;/li&gt;
&lt;li&gt;…and the result is that all the  changes that have accrued in the intervening 61 days are now lost. If  there is another online DC, say in an on-premise environment, it will  refuse to speak to this “imposter”. The password will have changed twice  in the intervening 60 days and the tombstone timeout will have  occurred. You therefore cannot rely on replication to get this DC back  in to the state it was before the failure. &lt;/li&gt;
&lt;/ol&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;  &lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;Essentially,  having the fabric fire-up a new DC based on an &lt;span style=&quot;color: #cc0000;&quot;&gt;out-of-date image&lt;/span&gt; is a  bit like the not-recommended practice of running DCPromo on a Virtual  Machine&lt;/span&gt;&lt;/b&gt; and therefore getting a copy of the domain database on to the  machine. Then &lt;b&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;ta&lt;/span&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;king it offline and storing the VHD as the “backup” of  AD&lt;/span&gt;&lt;/b&gt;. Re-introducing that DC back in to the network after a time will  cause it to be ignored in the same way for all the same reasons.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;  &lt;/div&gt;&lt;div style=&quot;background-color: white; color: red; font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;The  risk with having applications that can use Windows Integrated  Authentication in the cloud is that&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue;&quot;&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt; &lt;/span&gt;i&lt;/span&gt;&lt;span style=&quot;background-color: blue;&quot;&gt;&lt;span style=&quot;background-color: white; color: blue;&quot;&gt;f the network between your  on-premise Domain Controllers and the apps you have in the cloud goes  down&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #cc0000;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt; the apps can’t be used.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: red; font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background-color: white; color: red; font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;It therefore &lt;/span&gt;&lt;em style=&quot;color: #cc0000;&quot;&gt;appears&lt;/em&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt; to be the  case that a VM Role deployed as a Domain Controller up in the cloud and  using Windows Azure Connect to give full domain connectivity is a good  idea. And indeed it is – until a failure occurs&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;But remember, you &lt;em&gt;can &lt;b&gt;&lt;a href=&quot;http://blogs.msdn.com/b/plankytronixx/archive/2010/11/02/you-can-now-join-your-azure-instances-to-your-local-ad.aspx&quot;&gt;domain-join your Azure based apps&lt;/a&gt;&lt;/b&gt;&lt;/em&gt;  to a local DC, and on that point, &lt;b&gt;Windows Azure Connect is a great way  to be able to quickly deploy AD-integrated apps to Azure without massive  re-engineering effort.&amp;nbsp; Because your local DC is part of your &lt;em&gt;infrastructure&lt;/em&gt;  it will be managed as such and won’t be subject to the service model  that is the basis for anything running in Azure.&lt;/b&gt; If anything this  scenario is a very practical demonstration of why it is that &lt;a href=&quot;http://blogs.msdn.com/b/plankytronixx/archive/2010/10/29/windows-azure-vmrole-iaas.aspx&quot;&gt;VM Role !== IaaS&lt;/a&gt;.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;  &lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Of course if somebody could come up with a way for the DC to store its directory data in blob storage, which &lt;em&gt;is persistent&lt;/em&gt;  across instance reboots, then we’d have a neat solution. Maybe that’s  an opportunity for a clever ISV partner to exploit. In the meantime –  take the opposite sentiment to Nike’s strapline – “&lt;b style=&quot;color: red;&quot;&gt;Just Don’t Do It”.&lt;/b&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/4571727977880411399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/4571727977880411399' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/4571727977880411399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/4571727977880411399'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/why-you-should-not-deploy-ad-domain.html' title='Why you SHOULD NOT deploy an AD domain controller using Azure Connect with VM Role'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1293666849220235595.post-7850933337338732346</id><published>2010-12-01T23:28:00.001+05:30</published><updated>2010-12-05T23:57:06.888+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="VM Role"/><title type='text'>Windows Azure VM Role: Looking at it a different way</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;The debate regarding PaaS vs. IaaS continues at pace. It seems as  though no mention of this debate where Windows Azure is concerned, is  complete without a &lt;span style=&quot;color: blue;&quot;&gt;frequently&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;misunderstood notion&lt;/span&gt; of what the recently  announced VM Role is. &lt;span style=&quot;color: blue;&quot;&gt;Many commentators are saying “It’s Microsoft’s  IaaS offering”.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;Let me put forward a way of explaining what it is:&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;With  a PaaS service like Windows Azure, the developer creates an application  package and hands that, plus a configuration, over to Microsoft and  says “can you run this package in your Data Centre, according to this  configuration”. Windows Azure goes ahead and runs the application. The  fact that it spins up a VM to house the application, in theory, should  not concern the developer. The existing Web and Worker Roles work in  exactly this way.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;When you hand over the package, it consist of  all the files and resources needed to run the application. It’s rolled  in to a file called a .cspkg file, a “cloud service package” file. The  configuration or .cscfg accompanies the package. There is no guarantee  of state for the application. If it fails for some reason, it must be  capable of picking up where it left off and it’s down to the developer  to work out how that is going to happen – perhaps by using persistent  storage like blob or table storage.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;The Windows Azure fabric has  no knowledge of the internals of the application. Imagine a bug is  identified – Windows Azure will not create and apply a patch to the  application. We know that for the Web and Worker Roles, it will apply  patches and fixes – ones that Microsoft has identified – &lt;i&gt;to the operating system&lt;/i&gt; but not to the application itself.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;b style=&quot;color: blue;&quot;&gt;The  way to look at the VM Role is that the entire thing is a Windows Azure  application. &lt;/b&gt;&lt;b style=&quot;color: blue;&quot;&gt;You don’t send a .cspkg file, but instead, the package is a  .vhd file.&lt;/b&gt; Now, because these files are likely to be huge in comparison  to a .cscfg, Windows Azure has created a method of updating with  differencing disks, but that’s just an implementation detail. &lt;b style=&quot;color: blue;&quot;&gt;You can  think of a VM Role application package as the .vhd file.&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;As is  the case with the .cspkg, Windows Azure has no visibility to the  internals of the application. Just as with a .cspkg application, it is  the developer’s responsibility to keep it up to date, apply bug fixes,  patches, updates etc. Only with an entire .vhd, the “application”  updates are the patches, fixes and service packs of the OS itself &lt;i&gt;plus&lt;/i&gt; any updates to the developer-built part of the “app”.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;The  application is still subject to the service model, it’s just the  application package file-type that is diferent (.vhd) and the scope of  the application is different (it includes the entire OS).&lt;/span&gt; &lt;/b&gt;Other than  those differences, &lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;it’s a PaaS application&lt;/span&gt; &lt;/b&gt;that runs on Windows Azure,  subject to the service model and all the other benefits and constraints,  just like the Web and Worker Roles.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;I hope this viewpoint helps describe &lt;b style=&quot;color: blue;&quot;&gt;VM Role as a PaaS offering&lt;/b&gt; and not the confusing&lt;b&gt; IaaS &lt;/b&gt;that many folks think it mimics.&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: left;&quot;&gt;Article posted at&amp;nbsp;&lt;a href=&quot;http://blogs.msdn.com/b/plankytronixx/archive/2010/11/27/windows-azure-vm-role-looking-at-it-a-different-way.aspx&quot;&gt;http://blogs.msdn.com/b/plankytronixx/archive/2010/11/27/windows-azure-vm-role-looking-at-it-a-different-way.aspx&lt;/a&gt; &lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: left;&quot;&gt;Article written by: &lt;b&gt;Planky&lt;/b&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://windowsazureinfo.blogspot.com/feeds/7850933337338732346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/1293666849220235595/7850933337338732346' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/7850933337338732346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1293666849220235595/posts/default/7850933337338732346'/><link rel='alternate' type='text/html' href='http://windowsazureinfo.blogspot.com/2010/12/windows-azure-vm-role-looking-at-it.html' title='Windows Azure VM Role: Looking at it a different way'/><author><name>Chaitanya</name><uri>http://www.blogger.com/profile/02020479605637751907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-hQp9n_OePIUA9Kp5M9_xuZspmwC9Xy2Q2J8aDnpWwrHEk8uJOJS0N-4r0RS6AsmewlZTkZz5J_iuWE1btrBYy-2bdw-xWsXWsKH5MjCQFEwstLyPCwhX8-MzPRYBaA/s220/Image0285.jpg'/></author><thr:total>0</thr:total></entry></feed>