<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Narahari's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/narahari/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/narahari/feed.xml</link>
    <description>Windows Azure Platform</description>
    <lastBuildDate>Fri, 10 Apr 2015 00:25:51 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Windows Azure Virtual Machine restarted with out any notification</title>
      <link>https://docs.microsoft.com/archive/blogs/narahari/windows-azure-virtual-machine-restarted-with-out-any-notification</link>
      <pubDate>Mon, 23 Sep 2013 17:25:00 GMT</pubDate>
      <dc:creator><![CDATA[Narahari Dogiparthi [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/narahari/2013/09/23/windows-azure-virtual-machine-restarted-with-out-any-notification/</guid>
      <description><![CDATA[An unexpected restart of an Azure VM is an issue that commonly results in a customer opening a...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;">An unexpected restart of an Azure VM is an issue that commonly results in a customer opening a support incident to determine the cause of the restart. Hopefully the explanation below provides details to help understand why an Azure VM could have been restarted. </span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">Windows Azure updates the host environment approximately once&nbsp;every 2-3 months to keep the environment secure for all applications and&nbsp;virtual machines running on the platform. This update process may result in your VM restarting, causing downtime to your applications/services hosted by the Virtual Machines feature. There is no option or configuration to avoid these host updates. In addition to platform updates, Windows Azure service healing occurs automatically when a problem with a host server is detected and the VMs running on that server are moved to a different host. When this occurs, you loose connectivity to VM during the service healing process. After the service healing process is completed, when you connect to VM, you will likely to find a event log entry indicating VM restart (either gracefully or unexpected). Because of this, it is important to configure your VMs to handle these situations in order to avoid downtime for your applications/services.</span>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size: small;">To ensure high availability of your applications/services hosted in Windows Azure Virtual Machines,&nbsp; we recommend using multiple VMs with availability sets. VMs in the same availability set are placed in different fault domains and update domains so that planned updates, or unexpected failures, will not impact all the VMs in that availability set. For example, if you have&nbsp;two VMs and configure them to be part of an availability set, when a host is being updated, only one VM is brought down at a time.&nbsp;This will provide high availability since you have one VM available to serve the user requests during the host update process. Mark Russinovich has posted a great </span><a href="https://blogs.technet.com/b/markrussinovich/archive/2012/08/22/3515679.aspx"><span style="font-size: small;">blog post</span></a><span style="font-size: small;"> which explains Windows Azure Host updates in detail. Managing the high availability is detailed </span><a href="https://www.windowsazure.com/en-us/manage/windows/common-tasks/manage-vm-availability/"><span style="font-size: small;">here</span></a><span style="font-size: small;">. </span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">While availability sets help provide high availability for your VMs, we recognize that proactive notification of planned maintenance is a much-requested feature, particularly to help prepare in a situation where you have a workload that is running on a single VM and is not configured for high availability. While this type of proactive notification of planned maintenance is not currently provided, we encourage you to provide comments on this topic so we can take the feedback to the product teams.</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Windows Azure Virtual Machine SLA&nbsp;</p>
<p><a href="https://www.microsoft.com/en-us/download/details.aspx?id=38427">https://www.microsoft.com/en-us/download/details.aspx?id=38427</a>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size: small;">Key words : VM , Restart, Shutdown, Unexpected reboot, Windows Azure</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Configure Remote Desktop via management portal for Windows Azure Cloud Services</title>
      <link>https://docs.microsoft.com/archive/blogs/narahari/configure-remote-desktop-via-management-portal-for-windows-azure-cloud-services</link>
      <pubDate>Fri, 19 Jul 2013 16:44:39 GMT</pubDate>
      <dc:creator><![CDATA[Narahari Dogiparthi [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/narahari/2013/07/19/configure-remote-desktop-via-management-portal-for-windows-azure-cloud-services/</guid>
      <description><![CDATA[Windows Azure now allows users to configure, enable remote desktop for cloud services via management...]]></description>
      <content:encoded><![CDATA[<p><font size="3">Windows Azure now allows users to configure, enable remote desktop for cloud services via management portal. Earlier, users could only enable this at the time of deployment.&#160; This new features allows users to configure the remote desktop on fly and eliminates the need of redeployment. Below are the steps to configure:</font></p> <font size="3"></font>  <ol><font size="3"></font>    <li><font size="3">Log onto </font><a href="https://manage.windowsazure.com"><font size="3">Windows Azure Management Portal</font></a></li>   <font size="3"></font>    <br />    <li><font size="3">Navigate to “Cloud Services” </font></li>   <font size="3"></font>    <br />    <li><font size="3">Select the cloud service you would like to configure Remote Desktop</font></li>   <font size="3"></font>    <br />    <li><font size="3">Select configure option</font></li>   <font size="3"></font>    <br />    <li><font size="3">Click on “Remote” at the bottom of the screen</font></li>   <font size="3"></font><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/3264.image_422F9650.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/3264.image_5F00_422F9650.png"><font size="3"><img title="image" style="margin: 0px; display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/0121.image_thumb_68FDAC90.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/0121.image_5F00_thumb_5F00_68FDAC90.png" width="413" height="240" /></font></a><font size="3"> </font>    <br />    <li><font size="3">Select the role you would like to configure Remote Desktop(You may choose “All” option to configure remote desktop for all the roles) </font></li>   <font size="3"></font>    <br />    <li><font size="3">Select “Enable Remote Desktop” and configure all required fields (user name, password, certificate, expires on) and click “Complete” </font></li>   <font size="3"></font></ol> <font size="3"></font>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/5811.image_1AF54D1B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/5811.image_5F00_1AF54D1B.png"><font size="3"><img title="image" style="margin: 0px 17px 0px 33px; display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/0143.image_thumb_61DE7018.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/0143.image_5F00_thumb_5F00_61DE7018.png" width="337" height="281" /></font></a></p> <font size="3"></font>  <p><font size="3"><strong>Note</strong>: Please ensure you password does not contain username or portion of user name. For example, if the user name is “hari”, make sure password is not like “hari$999” or “ha-789”. This will result in “Your credentials did not work” error when you try to RDP. </font></p> <font size="3"></font>  <p>&#160;</p> <font size="3"></font>  <p><font size="3"><strong>Related Articles</strong>:&#160; </font></p> <font size="3"></font>  <h3><font size="3" face="Segoe UI">“Your credentials did not work”</font></h3> <font size="3"></font>  <h3><a title="https://blogs.msdn.com/b/narahari/archive/2011/08/29/getting-quot-your-credentials-did-not-work-quot-when-connecting-to-windows-azure-vm-s.aspx" href="https://blogs.msdn.com/b/narahari/archive/2011/08/29/getting-quot-your-credentials-did-not-work-quot-when-connecting-to-windows-azure-vm-s.aspx"><font size="3" face="Segoe UI">https://blogs.msdn.com/b/narahari/archive/2011/08/29/getting-quot-your-credentials-did-not-work-quot-when-connecting-to-windows-azure-vm-s.aspx</font></a></h3>  <p><font size="3"></font></p>]]></content:encoded>
    </item>
    <item>
      <title>[CrossPost] TechNet Radio: (Part 2) Windows Azure Virtual Machine FAQs</title>
      <link>https://docs.microsoft.com/archive/blogs/narahari/crosspost-technet-radio-part-2-windows-azure-virtual-machine-faqs</link>
      <pubDate>Mon, 08 Apr 2013 12:09:33 GMT</pubDate>
      <dc:creator><![CDATA[Narahari Dogiparthi [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/narahari/2013/04/08/crosspost-technet-radio-part-2-windows-azure-virtual-machine-faqs/</guid>
      <description><![CDATA[I recently had opportunity to speak at a TechNet Radio session about Windows Azure Virtual Machines...]]></description>
      <content:encoded><![CDATA[<p>I recently had opportunity to speak at a TechNet Radio session about Windows Azure Virtual Machines FAQs. Below are the details of the radio session.</p>  <p><b></b></p>  <p><b>TechNet Radio: (Part 2) Windows Azure Virtual Machine FAQs</b></p>  <p><b>iFrame Embed Code:</b></p>  <p>&lt;iframe style=&quot;height:288px;width:512px&quot; src=&quot;<a href="https://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Part-2-Windows-Azure-Virtual-Machine-FAQs/player?w=512&amp;h=288">https://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Part-2-Windows-Azure-Virtual-Machine-FAQs/player?w=512&amp;h=288</a>&quot; frameBorder=&quot;0&quot; scrolling=&quot;no&quot; &gt;&lt;/iframe&gt; </p>  <p>We’re here for 2 of our Windows Azure IaaS series and in this episode we tackle the top <b><a href="https://aka.ms/SilverLining">Windows Azure Virtual Machines</a></b> FAQs and common gotchas. Tune in for this Q&amp;A session and get the answers to some of the most common issues we’ve seen customers run into plus stick around for a quick demo on how to setup and create your own virtual network.</p>  <ul>   <li>[<a href="https://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Part-2-Windows-Azure-Virtual-Machine-FAQs#time=1m48s">1:48</a>] Help! My Virtual Machine disappeared!! What happened? </li>    <li>[<a href="https://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Part-2-Windows-Azure-Virtual-Machine-FAQs#time=5m44s">5:44</a>] What is the Temporary Drive(D:) and why should I be worried about it? </li>    <li>[<a href="https://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Part-2-Windows-Azure-Virtual-Machine-FAQs#time=7m30s">7:30</a>] Are VHDs deleted by default when you delete virtual machines? </li>    <li>[<a href="https://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Part-2-Windows-Azure-Virtual-Machine-FAQs#time=10m03s">10:03</a>] Can I use PowerShell in Azure?&#160;&#160; </li>    <li>[<a href="https://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Part-2-Windows-Azure-Virtual-Machine-FAQs#time=11m25s">11:25</a>] Why am I having RDP connectivity problems? </li>    <li>[<a href="https://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Part-2-Windows-Azure-Virtual-Machine-FAQs#time=15m20s">15:20</a>] What about securing my Azure Virtual Machine? What do I need to know? </li>    <li>[<a href="https://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Part-2-Windows-Azure-Virtual-Machine-FAQs#time=19m32s">19:32</a>] Virtual Networks 101: What is it and why is it important? </li>    <li>[<a href="https://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Part-2-Windows-Azure-Virtual-Machine-FAQs#time=23m12s">23:12</a>] <b>DEMO</b>: How to create a Virtual Network in Windows Azure </li> </ul>  <p>__________________________</p>  <p><b>Experience Microsoft's latest products with these FREE downloads!      <br /></b><a href="https://lab.earlyexperts.net/"><b><img title="clip_image002" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/6675.clip_image002_2CC0E28C.gif" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/6675.clip_5F00_image002_5F00_2CC0E28C.gif" width="17" height="16" /></b></a><b>Build Your Lab!</b> Download&#160; <a href="https://aka.ms/TryWindowServer2012"><b>Windows Server 2012</b></a>,&#160; <a href="https://aka.ms/PrivateCloudTrial"><b>System Center 2012 SP1 </b></a>and&#160; <a href="https://aka.ms/TryHyper-V"><b>Hyper-V Server 2012</b></a> and get the best virtualization platform and private cloud management solution on the market. <b>Try it FREE now!</b></p>  <p><a href="https://aka.ms/lgws2012onazvm"><b><img title="clip_image004" style="margin: 0px; display: inline; background-image: none;" border="0" alt="clip_image004" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/6170.clip_image004_25A1A614.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/6170.clip_5F00_image004_5F00_25A1A614.jpg" width="20" height="20" /></b></a><b>Don’t Have a Lab?</b> Build Your Lab in the Cloud with <a href="https://aka.ms/SilverLining">Windows Azure Virtual Machines</a>. Try Windows Azure for free with no cost or obligations, and use any OS, language, database or tool. <a href="https://aka.ms/SilverLining"><b>FREE Download</b></a></p>  <p>__________________________    <br /><b>If you're interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information:</b></p>  <p><b></b></p>  <p><b>Blogs &amp; Articles:</b></p>  <ul>   <li><a href="https://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200155206">Matt Hester’s Blog</a></li>    <li><a href="https://blogs.msdn.com/b/narahari/">Hari Dogiparthi’s Blog</a></li>    <li><b>Read the article: </b><a href="https://blogs.msdn.com/b/narahari/archive/2013/01/15/windows-azure-virtual-machines-gotcha-s.aspx"><b>“Windows Azure Virtual Machines FAQs and Common Gotchas”</b></a></li>    <li><b>Read the article:&#160; <a href="https://blogs.msdn.com/b/narahari/archive/2013/02/05/security-best-practices-for-windows-azure.aspx">“Security Best Practices for Windows Azure”</a></b></li> </ul>  <p><b></b></p>  <p><b>Videos:</b></p>  <ul>   <li><a href="https://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Part-1-Infrastructure-as-a-Service--Windows-Azure-Virtual-Machines--Whats-in-it-for-Yo">(Part 1) Infrastructure as a Service – Windows Azure Virtual Machines &amp; What’s in it for You</a></li> </ul>  <p><b></b></p>  <p><b>Virtual Labs:</b></p>  <ul>   <li><a href="https://msdn.microsoft.com/en-us/dd540819.aspx">Windows Azure Virtual Labs</a></li> </ul>  <p><a href="https://twitter.com/technetradio"><img title="clip_image005" style="margin: 0px; display: inline; background-image: none;" border="0" alt="clip_image005" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/0312.clip_image005_6C8AC911.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/0312.clip_5F00_image005_5F00_6C8AC911.jpg" width="19" height="19" /></a><a href="https://twitter.com/technetradio">Follow @technetradio</a>     <br /><a href="https://www.facebook.com/MicrosoftTechNetRadio"><img title="clip_image006" style="margin: 0px; display: inline; background-image: none;" border="0" alt="clip_image006" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/7268.clip_image006_4C6FBC54.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/7268.clip_5F00_image006_5F00_4C6FBC54.jpg" width="19" height="19" /></a><a href="https://www.facebook.com/MicrosoftTechNetRadio">Become a Fan @ facebook.com/MicrosoftTechNetRadio</a>     <br /><a href="https://channel9.msdn.com/Shows/TechNet+Radio/feed/mp4"><img title="clip_image008" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image008" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/6663.clip_image008_2C54AF97.gif" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/6663.clip_5F00_image008_5F00_2C54AF97.gif" width="15" height="15" /></a>Subscribe to our podcast via <a href="https://itunes.apple.com/us/podcast/technet-radio-mp4-channel-9/id546970030">iTunes</a>, <a href="https://stitcher.com/s?fid=26282">Stitcher</a>, or <a href="https://channel9.msdn.com/Shows/TechNet+Radio/feed/mp4">RSS</a></p>  <p><b>Download</b></p>  <ul>   <li><a href="https://media.ch9.ms/ch9/2240/d933b9d2-27a8-4539-9acb-9e5093952240/TNRAzureIaaSFAQs.mp3">MP3</a> (Audio only)</li>    <li><a href="https://media.ch9.ms/ch9/2240/d933b9d2-27a8-4539-9acb-9e5093952240/TNRAzureIaaSFAQs.mp4">MP4</a> (iPod, Zune HD)</li>    <li><a href="https://media.ch9.ms/ch9/2240/d933b9d2-27a8-4539-9acb-9e5093952240/TNRAzureIaaSFAQs_high.mp4">High Quality MP4</a> (iPad, PC)</li>    <li><a href="https://media.ch9.ms/ch9/2240/d933b9d2-27a8-4539-9acb-9e5093952240/TNRAzureIaaSFAQs_mid.mp4">Mid Quality MP4</a> (WP7, HTML5)</li>    <li><a href="https://media.ch9.ms/ch9/2240/d933b9d2-27a8-4539-9acb-9e5093952240/TNRAzureIaaSFAQs_Source.wmv">High Quality WMV</a> (PC, Xbox, MCE)</li> </ul>]]></content:encoded>
    </item>
    <item>
      <title>Security Best Practices for Windows Azure</title>
      <link>https://docs.microsoft.com/archive/blogs/narahari/security-best-practices-for-windows-azure</link>
      <pubDate>Mon, 04 Feb 2013 19:04:16 GMT</pubDate>
      <dc:creator><![CDATA[Narahari Dogiparthi [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/narahari/2013/02/04/security-best-practices-for-windows-azure/</guid>
      <description><![CDATA[Security is an very important aspect when it comes to computers and it should be at the top of...]]></description>
      <content:encoded><![CDATA[<p>Security is an very important aspect when it comes to computers and it should be at the top of everyone’s mind. When building environments, machines that are connected to internet, security becomes job one. One must take deliberate steps to protect the machines running in the cloud. Below are some of the well-known threats /attacks that are applicable to all types of computer environments:</p>  <p><b>Password cracking</b>. As soon as an attacker knows a valid administrator username and password combination they own your machine. If you use default account names, you are giving the attacker a head start. Then the attacker only has to crack the account’s password. The use of blank or weak passwords makes the attacker’s job even easier. The two main methods used to crack passwords are brute force and dictionary attacks.</p>  <p><b>Brute force attacks: </b>An attacker guesses identity and/or credentials through the use of brute force.<b> </b></p>  <p>Attacks that use the raw computer processing power to try different permutations of any variable that could expose a security hole. For example, if an attacker knew that access required an 8-character username and a 10-character password, the attacker could iterate through every possible permutation (256 multiplied by itself 18 times) in order to attempt to gain access to the machine. Scripts make this even easier so no programming knowledge is required. </p>  <p><b>Dictionary attacks: </b>An attacker guesses identity and/or credentials through the use of common terms in a dictionary designed for that purpose. </p>  <p>The Confiker.B worm used a dictionary of <a href="https://www.microsoft.com/security/portal/threat/encyclopedia/entry.aspx?Name=Worm%3aWin32%2fConficker.B">weak passwords</a> in order to compromise machines. Use of a list of likely credentials (usernames, passwords, coding methods) make gaining access relatively easy especially when delivered by a script. This approach is more socially focused than the &quot;brute force&quot; attack method, which increases the likelihood of success in a shorter amount of time. </p>  <p><b>Spoofing</b>. An attempt to gain access to a system by using a false identity. This can be accomplished by using stolen user credentials or a false IP address. After the attacker successfully gains access as a legitimate user or host, elevation of privileges or abuse using authorization can begin. </p>  <p><b>Credential theft. </b>An attacker gains access to credentials through data theft; for instance, phishing or social engineering. </p>  <ul>   <ul>     <li>Using weak passwords.</li>      <li>Storing clear text credentials in configuration files.</li>      <li>Passing clear text credentials over the network.</li>   </ul> </ul>  <p><b>Network eavesdropping</b>. An attacker steals identity and/or credentials off the network by reading network traffic not intended for them. </p>  <h1><font color="#0080ff" size="3">Virtual Machines</font> </h1>  <p><b>Following are the best practices to be followed while working with Windows Azure Virtual Machines to protect from some of the threats, attacks mentioned above.</b></p>  <p>1) While setting up password, <a href="https://windows.microsoft.com/en-us/Windows7/Tips-for-creating-strong-passwords-and-passphrases">use a pass phrase to create a strong<b> </b>passwords</a>:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/2018.clip_image002_4C197077.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/2018.clip_5F00_image002_5F00_4C197077.png"><img title="clip_image002" style="display: inline; background-image: none;" border="0" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/8206.clip_image002_thumb_799A903A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/8206.clip_5F00_image002_5F00_thumb_5F00_799A903A.png" width="524" height="255" /></a> <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/3482.clip_image004_52604705.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/3482.clip_5F00_image004_5F00_52604705.png"><img title="clip_image004" style="display: inline; background-image: none;" border="0" alt="clip_image004" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/1348.clip_image004_thumb_4B410A8D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/1348.clip_5F00_image004_5F00_thumb_5F00_4B410A8D.png" width="289" height="254" /></a></p>  <p><b>Note</b>: Complex passwords like <a href="mailto:p@assword1">p@assword1</a>, <a href="mailto:password@1">password@1</a>, are very easy to guess for hackers. You may find more examples of strong passwords that can be easy to remember <a href="https://xkcd.com/936/">here</a></p>  <p><strong>Update:</strong> In the interest of security, portal does not allow using few common passwords. However there may be few common passwords it allows and we recommend you to avoid using any common passwords.</p>  <p> 2) While creating a virtual machine, choose the random name that is not common. i.e. Administrator.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/6648.image_735D143C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/6648.image_5F00_735D143C.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/0385.image_thumb_129FBB10.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/0385.image_5F00_thumb_5F00_129FBB10.png" width="455" height="310" /></a></p>  <p>Note: 1) Choose the name that is easy to remember for you. i.e. Administrator-CompanyName, ADMSQLVM. Avoid using common user names mentioned <a href="https://www.microsoft.com/security/portal/threat/encyclopedia/Entry.aspx?Name=Worm%3aWin32%2fMorto.B">here</a></p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 2) In the interest of security, portal does not allow using common names like Administrator while provisioning the VM.</p>  <p>3) Change the default public RDP port(if the public port is 3389) to an unused, non-standard port or if the VM is part of <a href="https://www.windowsazure.com/en-us/manage/services/networking/">Virtual Network</a> with site-site connectivity to your on-premise environments, remove the endpoint completely and connect to the VM via VPN connectivity.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/8371.clip_image008_71A2EDD8.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/8371.clip_5F00_image008_5F00_71A2EDD8.png"><img title="clip_image008" style="display: inline; background-image: none;" border="0" alt="clip_image008" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/4666.clip_image008_thumb_18710419.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/4666.clip_5F00_image008_5F00_thumb_5F00_18710419.png" width="563" height="249" /></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/7128.clip_image010_1151C7A1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/7128.clip_5F00_image010_5F00_1151C7A1.png"><img title="clip_image010" style="margin: 0px; display: inline; background-image: none;" border="0" alt="clip_image010" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/1351.clip_image010_thumb_7136BAE3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/1351.clip_5F00_image010_5F00_thumb_5F00_7136BAE3.png" width="231" height="244" /></a></p>  <p><strong>Update : As of now, Portal generates random port instead of assigning default 3389 for RemoteDesktop. We recommend not to change this public port to 3389.</strong></p>  <p>&#160;</p>  <p>4) <font color="#ff0000">Allow RDP connections only from specific IPs to ensure RDP connectivity from specific machines. (If you do not have control over the IPs you are configuring here, it can <b>potentially lead you to lose connectivity</b> to VM, Please thoroughly discuss this with your network administrators before you attempt to configure this)</font> </p>  <p>Additionally, Create a virtual network with IP/Subnet range and add that range to the whitelist here so that if you lose connectivity from your on-premise environments for any reason, you can spin up a new VM as part of the virtual network and connect to VM with in the virtual network.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/6116.clip_image012_232E5B6E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/6116.clip_5F00_image012_5F00_232E5B6E.png"><img title="clip_image012" style="display: inline; background-image: none;" border="0" alt="clip_image012" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/8360.clip_image012_thumb_57CEB7A9.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/8360.clip_5F00_image012_5F00_thumb_5F00_57CEB7A9.png" width="560" height="287" /></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/0358.clip_image014_297531FC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/0358.clip_5F00_image014_5F00_297531FC.png"><img title="clip_image014" style="display: inline; background-image: none;" border="0" alt="clip_image014" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/1030.clip_image014_thumb_5043483C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/1030.clip_5F00_image014_5F00_thumb_5F00_5043483C.png" width="243" height="288" /></a></p>  <p>For more details: <a href="https://technet.microsoft.com/en-us/library/cc771905.aspx">Firewall Rule Properties Page: Scope Tab</a></p>  <p>&#160;</p>  <p>5) Configure auditing events and monitor the failed logon attempts and block the IPs </p>  <ul>   <li>Configure auditing for failed logon events like <a href="https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=4625">4625</a>,<a href="https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=4648">4648</a> and configure alerts or schedule tasks to run a batch file which will extract the IP from event log entry and block it by adding a firewall rule. </li>    <li>There seems to be many 3rd party tools available to block these IPs automatically. One I came across is RDPGuard. <a href="https://rdpguard.com/">https://rdpguard.com/</a> </li> </ul>  <blockquote>   <p><a href="https://technet.microsoft.com/library/cc772066(WS.10).aspx">Security and Protection in Windows Server 2008 , R2</a>       <br /><a href="https://technet.microsoft.com/en-US/library/hh849642">Security and Protection in Windows Server 2012</a> </p> </blockquote>  <p>6) Don’t use the same password for all virtual machines,&#160; change the passwords frequently.</p>  <p>7) Use established password management policies. Password policies are established to lessen the vulnerability to dictionary or brute-force attacks against authentication. These policies include:</p>  <ul>   <ul></ul>    <li>Require strong passwords. Strong password policies should encompass minimum password length, and use of alpha-numeric and special characters.</li>    <li>Enforce requirements when using a passphrase. Passphrases should also have minimum requirements for number of characters, and potentially special characters too.</li>    <li>Enforce password complexity requirement by requiring long passwords with a combination of upper case, lower case, numeric and special (for example punctuation) characters. This helps mitigate the threat posed by dictionary attacks.</li>    <li>Enforce password expiration periods.</li>    <li>Use account lockout policies for end-user accounts.</li>    <li>Support administrative disabling of accounts.</li>    <li>Maintain a password history, but do not store the actual password as described above.</li>    <li>Be aware of using email to distribute passwords or as part of your password reset procedures. Instead of passing the user credentials in email, consider an alternate approach allowing users to use alternate means to identify themselves (such as secrets) in the UI and reset the password.</li>    <ul></ul> </ul>  <p><b>﻿</b></p>  <p>8) Run <a href="https://technet.microsoft.com/en-us/library/dd759260.aspx">best practices analyzer</a> and take appropriate action to fix security issues reported by the tool&#160; </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/5732.clip_image016_1B36B90C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/5732.clip_5F00_image016_5F00_1B36B90C.png"><img title="clip_image016" style="display: inline; background-image: none;" border="0" alt="clip_image016" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/2313.clip_image016_thumb_08EDF24A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/2313.clip_5F00_image016_5F00_thumb_5F00_08EDF24A.png" width="672" height="271" /></a></p>  <p>9) Do NOT disable automatic updates <strong>or</strong> ensure VMs are up-to-date from patches perspective.</p>  <p>10) Evaluate best suitable anti virus software / Intrusion detection software available in the market for the use in Windows Azure Virtual Machines </p>  <p>&#160;</p>  <h1><font color="#0080ff" size="3">Cloud Services</font></h1>  <p>When setting up <a href="https://www.windowsazure.com/en-us/develop/net/common-tasks/remote-desktop/">remote desktop for a cloud service</a> in Windows Azure the same care must be taken to secure the machine.</p>  <p>1) When deploying in Visual Studio or with the PowerShell <a href="https://www.windowsazure.com/en-us/develop/nodejs/common-tasks/enable-remote-desktop/"><b>Enable-AzureServiceProjectRemoteDesktop</b></a><b> </b>command, choose a random User name account which is easy to remember for you. i.e. ADMSQLVM.&#160; Choose a password, <a href="https://windows.microsoft.com/en-us/Windows7/Tips-for-creating-strong-passwords-and-passphrases">use a pass phrase to create a strong<b> </b>passwords</a>. </p>  <p>   <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/5040.clip_image018_48B7D8CF.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/5040.clip_5F00_image018_5F00_48B7D8CF.jpg"><img title="clip_image018" style="display: inline; background-image: none;" border="0" alt="clip_image018" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/1348.clip_image018_thumb_41989C57.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/1348.clip_5F00_image018_5F00_thumb_5F00_41989C57.jpg" width="337" height="309" /></a></p>  <p>2) Change your password frequently.</p>  <p>3) When not using the Remote Desktop Connection, you can disable it using the <a href="https://www.windowsazure.com/en-us/develop/nodejs/common-tasks/enable-remote-desktop/"><b>Disable-AzureServiceProjectRemoteDesktop</b></a> command. This will substantially reduce your risk surface.</p>  <p>4) With Windows Azure diagnostics, you can monitor the event logs for failed logon events <a href="https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=4625">4625</a>, and <a href="https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=4648">4648</a>.</p>  <p><strong>I’ve obtained some of the content (especially related to attacks) of this article from </strong><a href="https://blogs.msdn.com/b/jmeier/archive/2010/08/03/now-available-azure-security-notes-pdf.aspx"><strong>J.D.Meier’s blog</strong></a><strong>. He has posted a great blog related to cloud security and covers various security aspects . It has tons of great information that will help windows azure virtual machines users to understand various security issues.</strong></p>  <p><strong></strong></p>  <p>Many thanks to Corey Sanders, Flavio Muratore, Julian Gonzalez, Neil Carpenter, Steve Espinosa,&#160; William Bellamy for their review, valuable inputs.</p>  <p>&#160;</p>  <p>Keywords: Security, Best Practices, IaaS, VM, Windows Azure Virtual Machines.</p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Azure Virtual Machines – Gotcha’s!</title>
      <link>https://docs.microsoft.com/archive/blogs/narahari/windows-azure-virtual-machines-gotchas</link>
      <pubDate>Mon, 14 Jan 2013 10:49:00 GMT</pubDate>
      <dc:creator><![CDATA[Narahari Dogiparthi [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/narahari/2013/01/14/windows-azure-virtual-machines-gotchas/</guid>
      <description><![CDATA[This blog post is an attempt to summarize most common issues we’ve seen Windows Azure Virtual...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;">This blog post is an attempt to summarize most common issues we’ve seen Windows Azure Virtual Machine users are running into and common questions that come up during our discussions with Virtual Machines customers.</span></p>  <p>&#160;</p>  <p><span style="font-size: small;">1) <strong>Virtual machine disappeared or was deleted</strong></span></p>  <p><span style="font-size: small;">When you hit the usage limit on your account, for example with a 90-day trial or the monthly access from an MSDN subscription, your storage accounts are set read-only, the VHD files for your VMs remain in the storage account as-is, but any deployed VMs are removed. This is done because deployed VMs reserve capacity even when stopped. Trial account users can enable pay-as-you-go, and for accounts with monthly limits like with an MSDN subscription, you will be able to deploy VMs from the existing VHDs when the next month’s billing cycle begins and the next month of usage is available. I’ve detailed this issue and mitigations in this blog <a href="https://blogs.msdn.com/b/narahari/archive/2012/10/18/windows-azure-virtual-machine-disappeared-or-gone-how-do-i-recover.aspx">post</a></span></p>  <p><span style="font-size: small;"><strong>Important Note</strong>: 90 day trial is associated with various quotas documented <a href="https://www.windowsazure.com/en-us/pricing/free-trial/">here.</a> After a specific quota(s) are reached you will not be able to use the related services unless you enable charges on your subscription. So depending on the usage of the trial subscription, you may run out of quotas way before 90 days. For example, 90 day trial comes with 750 <strong>small</strong> compute hours.&#160; That means you can run one single small VM for 750 hours. So,&#160; if you were to create 4 extra large VMs, these VMs will run for 23+ hrs before they are deleted.</span></p>  <p>&#160;</p>  <p><span style="font-size: small;">2) <strong>Underlying VHDs are not deleted by default when you delete virtual machines</strong></span></p>  <p><span style="font-size: small;">VHD files for Azure VMs are blobs in your Azure storage account that are registered as disk objects and attached to a VM when a VM is created (in the case of the OS disk) or when you manually add one (in the case of data disks). Removing a VM only makes it so the disk objects are no longer attached to the a VM, but the disk objects still remain as do the physical VHD files in your storage account (which will continue to incur storage fees). </span></p>  <p><span style="font-size: small;">To delete virtual machines along with related resources, you need to: <strong>Delete virtual machines, Delete Disks, Delete VHDs</strong></span></p>  <p><span style="font-size: small;">To remove disk objects and if desired, the physical VHD also, select <strong>Virtual Machines</strong>, then <strong>Disks</strong>, highlight the relevant disk and click <strong>Delete Disk</strong> which will then show you two options – <strong>Delete the associated VHD</strong> and <strong>Retain the associated VHD</strong>. </span></p>  <ul>   <li><span style="font-size: small;">To remove both the disk object and the physical VHD in your storage account, select <strong>Delete the associated VHD</strong>. </span></li>    <li><span style="font-size: small;">If you want to keep the physical VHD file but just remove the disk object, select <strong>Retain the associated VHD</strong>. </span></li> </ul>  <p><span style="font-size: small;">Screenshot showing the <strong>Delete the associated VHD</strong> and <strong>Retain the associated VHD</strong> options that are displayed when clicking <strong>Delete Dis</strong>k in the <strong>Disks</strong> section within <strong>Virtual Machines</strong>.</span></p>  <blockquote>   <p>&#160;</p>    <p><span style="font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/6471.image_11CA91FF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/6471.image_5F00_11CA91FF.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/5383.image_thumb_115E5F0A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/5383.image_5F00_thumb_5F00_115E5F0A.png" width="566" height="270" /></a></span></p> </blockquote>  <p><span style="font-size: small;">Note: Deleting VHDs may result in errors and may require you to break the lease to recover from the issue. Refer to point # 7 for more details.</span></p>  <p>&#160;</p>  <p><span style="font-size: small;">3) <strong>Beware of “Temporary Disk” usage</strong></span></p>  <p><span style="font-size: small;">We have seen a few customers that have used the D: drive to store important data, not realizing it is temporary storage.</span></p>  <p><span style="font-size: small;">The <strong>Temporary Storage (D:)</strong> drive is not persisted to Windows Azure storage as OS disks and data disks are. <strong>Data on the D: drive will be lost</strong> when the VM is moved to a different host server, when the host is updated or if it experiences a hardware failure or VM is moved to different host due to resize operation. The D: drive is only intended for storing temporary data (as indicated by the <strong>Temporary Storage</strong> volume label on the drive) such as temporary logs or databases. You must not use this temporary disk to store any data that you are not willing to lose. One key benefit that may motivate developers to use temporary disk is performance. I/O performance for temporary disks is higher than the IO permanence to OS disks, Data Disks. The reason is data is not persisted to Windows Azure Storage.</span></p>  <p><span style="font-size: small;">When using the D: drive for SQL TEMPDB, you will need to recreate the target folder when the VM is migrated to a different host, otherwise SQL may fail to start. For more information see the following article on the TechNet wiki: <a href="https://social.technet.microsoft.com/wiki/contents/articles/14337.change-tempdb-to-temporary-drive-on-azure-sql-iaas.aspx">Change TEMPDB to Temporary Drive on Azure SQL IaaS</a></span></p>  <blockquote>   <p><span style="font-size: small;">       <br /><strong>Screenshots showing the temporary drive Temporary Storage (D:)</strong>         <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/4336.clip_image002_1B0F68D6.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/4336.clip_5F00_image002_5F00_1B0F68D6.jpg"><img title="clip_image002" style="display: inline; background-image: none;" border="0" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/4130.clip_image002_thumb_767DDB51.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/4130.clip_5F00_image002_5F00_thumb_5F00_767DDB51.jpg" width="580" height="359" /></a></span></p>    <p><span style="font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/1817.clip_image004_55B07C6C.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/1817.clip_5F00_image004_5F00_55B07C6C.jpg"><img title="clip_image004" style="display: inline; background-image: none;" border="0" alt="clip_image004" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/0830.clip_image004_thumb_157A62F2.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/0830.clip_5F00_image004_5F00_thumb_5F00_157A62F2.jpg" width="582" height="253" /></a></span></p>    <p><span style="font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/5633.clip_image006_234CA8ED.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/5633.clip_5F00_image006_5F00_234CA8ED.jpg"><img title="clip_image006" style="display: inline; background-image: none;" border="0" alt="clip_image006" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/metablogapi/2084.clip_image006_thumb_63168F72.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08-metablogapi/2084.clip_5F00_image006_5F00_thumb_5F00_63168F72.jpg" width="586" height="343" /></a></span></p>   <span style="font-size: small;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></blockquote>  <p><span style="font-size: small;">4) <strong>Uploading existing VHDs</strong></span></p>  <p><span style="font-size: small;">Customers can use various methods to upload VHDs to Windows Azure Storage. We recommend uploading VHDs with the <strong>Add-AzureVHD</strong> cmdlet from Azure PowerShell 0.6.9 or later, or with <strong>Csupload.exe</strong> (1.7 or later) from the Azure SDK.</span></p>  <p><span style="font-size: small;">Please make sure of the following when uploading a VHD for use with Azure VMs:</span></p>  <ul>   <li><span style="font-size: small;">A VM <strong>must be generalized</strong> to use as an <strong>image</strong> from which you will create other VMs. For Windows, you generalize with the sysprep tool. For Linux you generalize with the Windows Azure Linux Agent (waagent). Provisioning will fail if you upload a VHD as an image that has not been generalized.</span></li>    <li><span style="font-size: small;">A VM <strong>must <em>not</em> be generalized</strong> to use as a <strong>disk</strong> to only use as a single VM (and not base other VMs from it). Provisioning will fail if you upload a VHD as a disk that has generalized.</span></li>    <li><span style="font-size: small;">When using third-party storage tools for the upload make sure to upload the VHD a <strong>page blob</strong> (provisioning will fail if the VHD was uploaded as a block blob). Add-AzureVHD and Csupload will handle this for you. It is only with third-party tools that you could inadvertantly upload as a block blob instead of a page blob.</span></li>    <li><span style="font-size: small;">Upload only <strong>fixed VHDs</strong> (not dynamic, and not VHDX). Windows Azure Virtual Machines do not support dynamic disks or the VHDX format. </span></li> </ul>  <p><span style="font-size: small;"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Note</strong>: Using CSUPLOAD or Add-AzureVHD to upload VHDs automatically converts the dynamic VHDs to fixed VHDs.</span></p>  <ul>   <li><span style="font-size: small;">Maximum size of VHD can be up to 127 GB. While data disks can be up to 1 TB, OS disks must be 127 GB or less.</span></li>    <li><span style="font-size: small;">The VM must be configured for DHCP and not assigned a static IP address. Windows Azure Virtual Machines do not support static IP addresses.</span></li> </ul>  <p><span style="font-size: small;">This <a href="https://social.msdn.microsoft.com/Forums/en-US/WAVirtualMachinesforWindows/thread/66c8c2d3-19bb-4248-a36f-d2dfe9742dd3">forum post</a> contains the common issues(&amp;workarounds) which may occur while uploading the VHDs. Also, you can find few details on several storage tools <a href="https://blogs.msdn.com/b/windowsazurestorage/archive/2010/04/17/windows-azure-storage-explorers.aspx">here</a></span></p>  <p>&#160;</p>  <p><span style="font-size: small;">5) <strong>Unable to re-use the previous DNS name of VM even though VM is deleted</strong></span></p>  <p><span style="font-size: small;">Deleting a VM does not remove the associated cloud service automatically and hence you are unable to re-use the same DNS name as previous VM. To reuse the DNS name, explicitly delete the cloud service in the <strong>Cloud Services</strong> section of the management portal, using <a href="https://msdn.microsoft.com/en-us/library/windowsazure/jj152819.aspx">Remove-AzureService</a> from Azure PowerShell, Azure Service Delete from the Azure CLI tool, or the <a href="https://msdn.microsoft.com/en-us/library/windowsazure/gg441305.aspx">Delete Hosted Service</a> API (the terms Cloud Service and Hosted Service are synonymous in this scenario).</span></p>  <p><span style="font-size: small;">Confused about cloud service? Let me explain.&#160; </span></p>  <p><span style="font-size: small;">When you create an Azure VM, a cloud service is created automatically with the DNS name you’ve provided for the VM. Currently, new HTML5 management portal does not list this cloud service under &quot;Cloud Services” section if it contains a single VM. You will see the cloud service there if it contains no VMs (is empty) or multiple VMs. You can check the cloud service by using the Azure PowerShell <a href="https://msdn.microsoft.com/en-us/library/windowsazure/jj152880.aspx">Get-AzureService</a> cmdlet. You can <a href="https://www.windowsazure.com/en-us/manage/windows/how-to-guides/connect-to-a-cloud-service/">group or connect</a> up to 50 virtual machines under a single cloud service.</span></p>  <p>&#160;</p>  <p><span style="font-size: small;">6) <strong>Securing Windows Azure Virtual Machines</strong></span></p>  <p>&#160;</p>  <p><span style="font-size: small;">In on-premise environments, security is an critical aspect when building machines, VMs. Building VMs in cloud is no different and one must take important measures to protect the VMs. This <a href="https://blogs.msdn.com/b/windows_azure_technical_support_wats_team/archive/2013/02/05/security-best-practices-for-windows-azure.aspx">blog post</a> summarizes the best practices to be used to protect Windows Azure Virtual Machines</span></p>  <p>   <br /><span style="font-size: small;">7) <strong>Failed to start virtual machine <em>xxxxxx</em>.</strong></span></p>  <p><span style="font-size: small;">While provisioning virtual machines, you may run similar error to below.</span></p>  <p><span style="font-size: small;">Failed to start virtual machine <em>xxxxxx</em>.</span>     <br /><span style="font-size: small;">The operation cannot be performed because the virtual machine is faulted. The long running operation tracking ID was: 8d03b3e18cac33e5a52996b68b6aa16g.</span></p>  <p><span style="font-size: small;">We have one known issue that may cause this behavior and our internal teams are working very hard to get to the fix deployed to resolve the issue. <strong>Until then, you may resize the virtual machine to workaround the issue quickly</strong>. If the issue persists after resizing, you may open a new forum thread using the forum link(s) provided under &quot;<strong>Production workloads and support during Windows Azure Virtual Machines “Preview” </strong>section<strong>.</strong></span></p>  <p>&#160; </p>  <p><span style="font-size: small;"><strong>Update</strong>: Windows Azure Virtual Machines went into General availability status on 16th April 2013. This issue has been resolved. If you are seeing this issue, please contact <a href="https://www.windowsazure.com/en-us/support/contact/">Windows Azure Support</a></span></p>  <p>   <br /><span style="font-size: x-small;">8) <strong>Failed to create virtual machine linuxvm1.</strong></span></p>  <p><span style="font-size: small;">While provisioning Linux based virtual machines, you may run into similar error to below.</span></p>  <p class="fxs-progressbox-status-success" data-bind="attr: { &quot;class&quot;: &quot;fxs-progressbox-status-&quot; + status() }">&#160;</p>  <p class="fxs-progressbox-status" data-bind="if: $root.url[&quot;step&quot; + $root.func._pascalCase(status())]"><span style="font-size: x-small;"><img alt="Completed" src="https://az213233.vo.msecnd.net/Content/3.0.00298.3.130227-1415/Images/icon-progress-complete.png" data-bind="attr: { src: $root.url[&quot;step&quot; + $root.func._pascalCase(status())], alt: $root.text[status()] }" />&#160;</span><a class="fxs-progressbox-step" data-bind="attr: { href: $root.func._hasDetails.call($root.func, $data) ? &quot;#&quot; : false }"><span style="font-size: x-small;"><span class="fxs-progressbox-steptitle" data-bind="safeMarkup: title, safeMarkup-options: { disableLinks: true }">Successfully created virtual machine linuxvm1.</span><span class="fxs-progressbox-stepdetails"><img alt="" src="https://az213233.vo.msecnd.net/Content/3.0.00298.3.130227-1415/Images/icon-progress-forward-arrow.png" data-bind="attr: { src: $root.url.stepDetails }" /></span></span></a></p>  <p class="fxs-progressbox-status-error" data-bind="attr: { &quot;class&quot;: &quot;fxs-progressbox-status-&quot; + status() }"><span style="font-size: x-small;"><img alt="Error" src="https://az213233.vo.msecnd.net/Content/3.0.00298.3.130227-1415/Images/icon-progress-error.png" data-bind="attr: { src: $root.url[&quot;step&quot; + $root.func._pascalCase(status())], alt: $root.text[status()] }" />&#160;</span><a class="fxs-progressbox-step" data-bind="attr: { href: $root.func._hasDetails.call($root.func, $data) ? &quot;#&quot; : false }"><span class="fxs-progressbox-steptitle" data-bind="safeMarkup: title, safeMarkup-options: { disableLinks: true }"><span style="font-size: x-small;">Could not provision the virtual machine linuxvm1.</span></span></a></p>  <p class="fxs-progressbox-status-error" data-bind="attr: { &quot;class&quot;: &quot;fxs-progressbox-status-&quot; + status() }"><span style="font-size: x-small;">Linux defines a set of user names that you can't use and if you are using one of those user names, you will see the above error. Refer to&#160; </span><a href="https://www.windowsazure.com/en-us/manage/linux/other-resources/user-names-in-linux/"><span style="font-size: x-small;">https://www.windowsazure.com/en-us/manage/linux/other-resources/user-names-in-linux/</span></a><span style="font-size: x-small;"> for more details, user names that cannot be used for Linux images.</span></p>  <p class="fxs-progressbox-status-error" data-bind="attr: { &quot;class&quot;: &quot;fxs-progressbox-status-&quot; + status() }">&#160;</p>  <p><span style="font-size: small;">9) <strong>Capture Versus</strong> <strong>Snapshot</strong></span></p>  <p><span style="font-size: small;">Capturing a VM creates an image(<strong>not </strong>meant for <strong>backup</strong>) that can be used to create multiple VMs based on that same image. You can capture a VM using the <a href="https://www.windowsazure.com/en-us/manage/windows/how-to-guides/capture-an-image/">Capture</a> option in the portal, the <a href="https://msdn.microsoft.com/en-us/library/windowsazure/jj152848.aspx">Save-AzureVMImage</a> Azure PowerShell cmdlet, using <strong>azure vm capture</strong> in the Azure CLI tool, or the <a href="https://msdn.microsoft.com/en-us/library/windowsazure/jj157201.aspx">Capture Role</a> API.</span></p>  <p><span style="font-size: small;">For VM <strong>backups</strong>, there is no equivalent to the <a href="https://technet.microsoft.com/en-us/library/dd560637(v=ws.10).aspx">Hyper-V snapshot</a> feature for Azure VMs. However Azure storage has a <a href="https://msdn.microsoft.com/en-us/library/windowsazure/hh488361.aspx">blob snapshot</a> feature that allows you to create a backup of the VHD blob in Azure storage. Microsoft does not currently provide a tool for creating blob snapshots, though third-party storage tools such as CloudXplorer include this feature. And you can write custom code to call the <a href="https://msdn.microsoft.com/en-us/library/windowsazure/ee691971.aspx">Snapshot Blob</a> API to create a blob snapshot.</span></p>  <p><span style="font-size: small;">You can also create a copy of a VHD using Azure storage tools. If the tool uses the <a href="https://blogs.msdn.com/b/windowsazurestorage/archive/2012/06/12/introducing-asynchronous-cross-account-copy-blob.aspx">2012-02-12</a> version or later of the Copy Blob API, it will allow for fast cross-account blob copies, for example to move a VHD between different storage accounts. Most of the commonly used Azure storage tools also allow you to download files to on-premises. This <a href="https://social.msdn.microsoft.com/Forums/hr/WAVirtualMachinesforWindows/thread/ac621e35-e7a6-4b94-b0e7-589c44405239">forum post</a> has steps to download the VHD using CloudXplorer. You can use any similar storage tools to perform the same task. </span></p>  <p>&#160;</p>  <p><span style="font-size: small;">10) <strong>How to break the lease on VHDs/blobs?</strong></span></p>  <p><span style="font-size: small;">The Windows Azure platform holds an <a href="https://msdn.microsoft.com/en-us/library/windowsazure/ee691972.aspx">infinite lease</a> on all the page blobs that it considers disks in your storage account so that you don’t accidently delete the underlying page blob, container, or storage account while the VHD is in use by the VM. If you want to delete the underlying page blob, the container it is within, or the storage account, you will need to detach the disk from the VM first or delete the VM and associated disk object.</span></p>  <p><span style="font-size: small;">In few scenarios, you may end up getting errors while deleting VHDs even though there are no disks/VMs referring to the VHD. In such cases you can manually break the lease using the powershell script. Craig Landis has a <a href="https://social.msdn.microsoft.com/Forums/en-US/WAVirtualMachinesforWindows/thread/7381ea0e-0443-4b33-aa12-ba39df003409">detailed forum post</a> describing these errors, workarounds along with the script. </span></p>  <p>&#160;</p>  <p><span style="font-size: small;">11) <strong>RDP connectivity issues</strong></span></p>  <p><span style="font-size: small;">RDP connectivity issue is very common issue customer encounter and this could be due to several different factors ranging from simple client firewall issue to a platform issue. You should start eliminating all client side issues first.</span></p>  <p>&#160;</p>  <ul>   <li><span style="font-size: small;">Investigate client-side firewall issues by pinging the TCP port for the RDP endpoint using tools such as <a href="https://technet.microsoft.com/en-us/sysinternals/jj729731.aspx">PsPing</a>, <a href="https://www.microsoft.com/en-us/download/details.aspx?id=17148">PortQry</a>, <a href="https://technet.microsoft.com/en-us/library/cc771275(v=ws.10).aspx">Telnet</a>, or <a href="https://nmap.org/download.html">Nmap</a>. See if your machine allows outbound communication to the RDP endpoint (TCP port 3389 for the first VM deployed to a cloud service, a random ephemeral port between 49152-65535 for additional VMs in the same cloud service). Verify the port on the Endpoints section for the VM in the portal. Since corporate firewalls often block 3389 and/or the ephemeral range (49152-65535), try connecting to the VM from a different network – from home, a wifi hotspot, or a mobile broadband connection. </span></li>    <li><span style="font-size: small;">Drew McDaniel has&#160; a <a href="https://social.msdn.microsoft.com/Forums/en-US/WAVirtualMachinesforWindows/thread/9c88a364-c3eb-41aa-a6b0-3ceae00491c2?Thread%3A9c88a364-c3eb-41aa-a6b0-3ceae00491c2=Microsoft.Forums.Data.Models.Discussion&amp;ThreadViewModel%3A9c88a364-c3eb-41aa-a6b0-3ceae00491c2=">forum sticky post</a> with common issue like cache credentials, endpoint related issues. </span></li>    <li><span style="font-size: small;">If you none of the above resolved connectivity issue, you can quickly try restarting/resizing the VMs to see if the problem goes away. If the problem persists you can reach out to the support <a href="https://social.msdn.microsoft.com/Forums/en-US/WAVirtualMachinesforWindows/threads">forum</a>. </span></li> </ul>  <p><span style="font-size: small;"><strong>Important Note</strong>: If you changed your firewall settings on VM to block the RDP traffic or if you stopped RDP related services on the virtual machine, you will end-up losing connectivity to the VM. There is no easy to revert these settings. You would need to follow the below steps(involves lot of work) to revert those settings.</span></p>  <ul>   <li><span style="font-size: small;">Download the disk to on-premise environment </span></li>    <li><span style="font-size: small;">Create a VM, attach the disk</span></li>    <li><span style="font-size: small;">Change the firewall setting to allow the RDP traffic or enable the Remote Desktop Services</span></li>    <li><span style="font-size: small;">Re-upload the disk to Azure and create a new Windows Azure Virtual Machine.</span></li> </ul>  <p><span style="font-size: small;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></p>  <p><span style="font-size: small;">12) <strong>Platform updates to VM, restarts, shutdowns.</strong></span></p>  <p><span style="font-size: small;">Windows Azure updates the host OS approximately once in every 1-3 months to keep the environment secure for all applications, virtual machines running on the platform. This update process may result in your VM to restart. You can use availability sets to ensure high availability for your applications running on virtual machines. Managing the high availability is detailed <a href="https://www.windowsazure.com/en-us/manage/windows/common-tasks/manage-vm-availability/">here</a>. Mark Russinovich has posted a great <a href="https://blogs.technet.com/b/markrussinovich/archive/2012/08/22/3515679.aspx">blog post</a> which explains Windows Azure Host updates in detail.</span></p>  <p><span style="font-size: small;">In addition to platform updates, Windows Azure service healing occurs automatically when the Windows Azure detects problematic nodes and moves these VMs to new nodes. When this occurs, you loose connectivity to VM during the service healing process and after the service healing process is completed, when you connect to VM, you will likely to find a event log entry indicating VM restart/shutdown (either gracefully or unexpected)</span></p>  <p><span style="font-size: small;">We recommend you to use availability groups to ensure high availability for your applications running in the VMs. Guidance for managing availability using availability sets can be found <a href="https://www.windowsazure.com/en-us/manage/windows/common-tasks/manage-vm-availability/">here</a></span></p>  <p><span style="font-size: small;"></span></p>  <p><span style="font-size: small;">13) <strong>VM activations</strong></span></p>  <p><span style="font-size: small;">While activating the OS on windows azure virtual machines, you may run into an error message stating the “A problem occurred when Windows tried to activate” Error Code 0xC004F074 with below details</span></p>  <blockquote>   <p><span style="font-size: small;">Code:        <br />0xC004F074         <br />Description:         <br />&quot;The software licensing service reported that the computer could not be activated. No key management service could be contacted&quot;</span></p> </blockquote>  <p><span style="font-size: small;">We are aware of this issue and working towards resolving this issue. Please note that activation status does not impact the services running on the server. Not activating will generate persistent notifications reminding you to activate the server. Services and remote administration are not affected. </span></p>  <p><span style="font-size: small;">Refer to <a href="https://social.msdn.microsoft.com/Forums/en-US/WAVirtualMachinesforWindows/thread/6437d12c-8560-43ee-a990-021e74f947d6">forum post</a> for more details.</span></p>  <p><b></b></p>  <p><span style="font-size: small;"><b>Update: </b>Platform bug has been identified and fixed to resolve this issue. If you are still seeing this issue, it is possible guest firewall is preventing connections to activation server. Try disabling the guest firewall and re-enable after activation is complete.</span></p>  <p><span style="font-size: small;">1. A registry export of&#160; “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform” for backup purposes</span></p>  <p><span style="font-size: small;">2. Disable the Windows Firewall by running the command “<b>netsh advfirewall set allprofiles state off”</b> and proceed with activation by executing “SLMGR –ATO&quot;</span></p>  <p><span style="font-size: small;">3. Re-enable the firewall after activation is completed by running the command “<b>netsh advfirewall set allprofiles state on”</b></span></p>  <p>&#160;</p>  <p><span style="font-size: small;">14) <strong>Production workloads and support during Windows Azure Virtual Machines “Preview”.</strong></span></p>  <p><span style="font-size: small;">While some customers have chosen to run production workloads on Windows Azure Virtual Machines, we currently do not recommend that because the feature is still in preview and meant for testing workloads so that they can be migrated easily to Virtual Machines after the feature is moved to <strong>GA</strong>(General Availability) status. </span></p>  <p><span style="font-size: small;">Also note that during the preview, support is provided via <span style="text-decoration: underline;">forums only</span>. Support issues should be posted to one of the following forums: </span></p>  <blockquote>   <p><span style="font-size: small;"><a href="https://social.msdn.microsoft.com/Forums/en-US/WAVirtualMachinesforWindows/threads"><strong>Windows Azure Virtual Machines for Windows</strong></a>         <br /><a href="https://social.msdn.microsoft.com/Forums/en-US/WAVirtualMachinesforLinux/threads"><strong>Windows Azure Virtual Machines for Linux</strong></a>         <br /><a href="https://social.msdn.microsoft.com/Forums/en-US/WAVirtualMachinesVirtualNetwork/threads"><strong>Windows Azure Virtual Machines Virtual Network</strong></a>         <br /><a href="https://social.msdn.microsoft.com/Forums/en-US/WAVirtualMachinesforSQLServer/threads"><strong>Windows Azure Virtual Machines for SQL Server</strong></a></span></p> </blockquote>  <p><span style="font-size: small;"><strong>Update</strong>: Windows Azure Virtual Machines went into General availability status on 16th April 2013. For any issues related to Virtual Machines, please contact <a href="https://www.windowsazure.com/en-us/support/contact/">Windows Azure Support</a></span></p>  <p>&#160;</p>  <p><span style="font-size: small;">15) <strong>Status of VMs after Windows Azure Virtual Machines reaches General Availability (GA) status</strong></span></p>  <p><span style="font-size: small;">Because the Windows Azure Virtual Machines feature remains in preview, requirements may still change before it reaches general availability. We expect that VMs created during preview will continue to run after GA. Note that it is possible that guest OS requirements could change that may require updating the VM to remain supported.</span></p>  <p><span style="font-size: small;"><strong>Update</strong>: Windows Azure Virtual Machines went into General availability status on 16th April 2013. Virtual machines created before preview continued to work after the GA.</span></p>  <p>&#160;</p>  <p>&#160;</p>  <p><span style="font-size: small;">16) <strong>VM role Vs Virtual Machines</strong></span></p>  <p><span style="font-size: small;">We have seen a few customers getting confused between “VM Role”, “Virtual Machines. In fact, few of them applied for “VM Role” access, but really wanted access for Windows Azure Virtual Machines. The confusion arises because of the naming convention and state of the two features </span></p>  <p><span style="font-size: small;"><strong>Virtual Machines –</strong> is part of IaaS offering <strong>(Stateful, Persistent) </strong>and currently in <span style="text-decoration: line-through;">preview</span> . (<span style="font-size: small;"><strong>Update</strong>: Windows Azure Virtual Machines went into General availability status on 16th April 2013.)</span></span></p>  <p><span style="font-size: small;"><strong>VM role</strong> – is part of PaaS offering<strong>(Stateless, non-persistent) </strong> and works just like web role, worker role, but with a custom supplied OS image. This feature is currently in beta. </span></p>  <p><span style="font-size: small;">Below articles give you the overview of both features. </span></p>  <blockquote><span style="font-size: small;"> Overview of the Windows Azure VM Role      <br /><a href="https://msdn.microsoft.com/en-us/library/windowsazure/gg433107.aspx">https://msdn.microsoft.com/en-us/library/windowsazure/gg433107.aspx</a>       <br /> Virtual Machines       <br /><a href="https://msdn.microsoft.com/en-us/library/windowsazure/jj156003.aspx">https://msdn.microsoft.com/en-us/library/windowsazure/jj156003.aspx</a></span></blockquote>  <p>&#160;</p>  <p><span style="font-size: small;">In a nutshell, if you’ve applied for access using old Silverlight portal, you’ve applied for “VM Role”. If you have used account management under new HTML5 portal, you’ve applied for “Virtual Machines” </span></p>  <p>&#160;</p>  <p><span style="font-size: x-small;">17) <strong>Disks vs Images vs VHDs</strong></span></p>  <p><span style="font-size: x-small;">Very often Windows Azure Virtual Machines users get confused by disks, vhds, images. I wanted to provide little information here. Below descriptions contains abstracts from </span><a href="https://msdn.microsoft.com/en-us/library/windowsazure/jj672979.aspx"><span style="font-size: x-small;">this</span></a><span style="font-size: x-small;"> MSDN article.</span></p>  <p><strong><span style="font-size: x-small;">VHD or Virtual Hard Disk</span></strong></p>  <p><span style="font-size: x-small;">A VHD file is stored as a page blob in Windows Azure storage and can be used for creating images, operating system disks, or data disks in Windows Azure. You can upload a VHD file to Windows Azure and manage it just as you would any other page blob. VHD files can be copied or moved and they can be deleted as long as a lease does not exist on the VHD. For more information about page blobs, see </span><a href="https://msdn.microsoft.com/en-us/library/ee691964.aspx"><span style="font-size: x-small;">Understanding Block Blobs and Page Blobs</span></a><span style="font-size: x-small;">.</span></p>  <p><strong><span style="font-size: x-small;">Disk</span></strong></p>  <p><span style="font-size: x-small;">Disks are logical objects. You use disks in different ways with a virtual machine in Windows Azure. An operating system disk is a VHD that you use to provide an operating system for a virtual machine. A data disk is a VHD that you attach to a virtual machine to store application data. You can create and delete disks whenever you need to.</span></p>  <p><span style="font-size: x-small;">Note<strong>: </strong>When you create a disk and map to a VHD, lease is created on the mapped VHD. As long as there is a lease on VHD, it cannot be deleted. So often see customers who delete the VMs and then directly try to delete VHDs, but run into errors indicating there is a lease on the VHD. I’ve provided more details regarding this issue above(Point#2)</span></p>  <p><span style="font-size: x-small;"><strong>Image</strong> </span></p>  <p><span style="font-size: x-small;">An image is a VHD file that you can use as a template to create a new virtual machine. An image is a template because it doesn’t have specific settings like a configured virtual machine, such as the computer name and user account settings. You can use images from the Image Gallery to create virtual machines or you can create your own images.</span></p>  <p><span style="font-size: x-small;">Note: We often see customers trying to copy a VHD and create image based on the copied VHD. Creating an image requires you to perform sysprep on the OS. More details can be found </span><a href="https://www.windowsazure.com/en-us/manage/windows/how-to-guides/capture-an-image/"><span style="font-size: x-small;">here</span></a></p>  <p>&#160;</p>  <p><span style="font-size: small;">18) <strong>Availability set &amp; affinity groups, Connecting VMs – Three different, distinct purposes</strong></span></p>  <p><span style="font-size: small;">Availability Set is a way to <strong>achieve high availability</strong> for your virtual machines. An <strong>availability set</strong> is a group of virtual machines that are deployed across fault domains and update domains. An availability set makes sure that your application is not affected by single points of failure, like the network switch or the power unit of a rack of servers. Guidance for managing availability using availability sets can be found <a href="https://www.windowsazure.com/en-us/manage/windows/common-tasks/manage-vm-availability/">here</a></span></p>  <p><span style="font-size: small;"><strong>Affinity groups</strong> are the way to group the services in your Windows Azure subscription that need to work together in order to <strong>achieve optimal performance</strong>. </span></p>  <p><span style="font-size: small;">When you create an affinity group, it lets Windows Azure know to keep all of the services that belong to your affinity group running at the same data center cluster. For example, if you want to keep the services running your data and your code together, you would specify the same affinity group for those services. That way, when you deploy those services, Windows Azure will locate them in a data center as close to each other as possible. This reduces latency and increases performance, while potentially lowering costs. Importance of affinity groups is described <a href="https://social.technet.microsoft.com/wiki/contents/articles/7916.importance-of-windows-azure-affinity-groups.aspx">here</a></span></p>  <p><span style="font-size: small;">Connecting VMs – <strong>Load balancing</strong></span></p>  <p><span style="font-size: small;">You group multiple VMs together under a single cloud service to distribute the load to multiple VMs. The way you group is during the second VM creation, you choose “Connect to Existing Virtual Machine” and then select the cloud service under which you wanted to group the VMs. This <a href="https://www.windowsazure.com/en-us/manage/windows/common-tasks/how-to-load-balance-virtual-machines/">article</a> details how to load balance virtual machines.</span></p>  <p>&#160;</p>  <p><span style="font-size: small;">19) <strong>GA date?</strong></span></p>  <p><span style="font-size: small;">At the time of publishing this blog there is no public announcement about the GA date. Our teams are working to launch GA at the earliest possible. Stay tuned to <a href="https://www.windowsazure.com/en-us/">Windows Azure Portal</a> for updated information.</span></p>  <p><span style="font-size: small;"><strong>Update</strong>: Windows Azure Virtual Machines went into General availability status on 16th April 2013.</span></p>  <p>&#160;</p>  <p><span style="font-size: small;">Thanks to Abhuday Aggarwal, Avkash Chauhan, Corey Sanders, Craig Landis, Flavio Muratore for reviewing this blog post, providing valuable inputs.</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Azure Virtual Machine disappeared or gone , How do I recover?</title>
      <link>https://docs.microsoft.com/archive/blogs/narahari/windows-azure-virtual-machine-disappeared-or-gone-how-do-i-recover</link>
      <pubDate>Wed, 17 Oct 2012 18:58:00 GMT</pubDate>
      <dc:creator><![CDATA[Narahari Dogiparthi [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/narahari/2012/10/17/windows-azure-virtual-machine-disappeared-or-gone-how-do-i-recover/</guid>
      <description><![CDATA[&nbsp;
We often hear from our Windows Azure customers who are using new preview feature...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>We often hear from our Windows Azure customers who are using new preview feature &ldquo;Windows Azure Virtual Machines&rdquo; that they created a VM and one fine day, it suddenly disappeared or gone. I&rsquo;m writing this post to give few details about the issue and what steps can be performed to recover from the situation.</p>
<p>&nbsp;</p>
<p><strong>Symptoms</strong></p>
<p>You have created a VM and it worked fine for few days and all of a sudden VM is not being listed in the portal and it appears to be gone. There are two common reasons we see why the VMs are deleted.</p>
<p><strong>Reason#1</strong> VM is created under a trial subscription and the trial quotas are reached</p>
<p>This is by design behavior to ensure your account is not billed after the quotas are reached. Trial quotas are documented <a href="https://www.windowsazure.com/en-us/pricing/free-trial/">here</a>. If the VMs are deleted due to quotas, an email will be send to account administrator and also, you can navigate to account.windowsazure.com to verify if the quotas are indeed reached.</p>
<p>Note: New preview portal now gives notification message when the trial period is about to end.&nbsp;</p>
<p><strong>Workaround: </strong>Though the VMs are deleted to ensure the account is not billed, the data(VHDs) itself is persisted to Windows Azure Storage and we can use these VHDs/Disks to create a new VM. To create a VM based on the disk, use the following steps. Also ensure that you enable charges on your subscription before you follow these steps so that you will not encounter the same problem again.</p>
<ul>
<li>Navigate to new preview <a href="https://manage.windowsazure.com/">portal</a> (Note: if you are using the OrgId, you need to append the OrgId to the URL)</li>
<li>Choose &ldquo;Virtual Machines&rdquo; , Select &ldquo;New&rdquo;</li>
<li>Select &ldquo;From Gallery&rdquo; , Select &ldquo;My Disks&rdquo;</li>
<li>Select the disk that was created for previous VM(which was missing from the list)</li>
<li>Follow the wizard to complete other steps to create virtual machine.</li>
</ul>
<p>Note: 1) If you do not see the disk in the list, it is possible that lease on VHD is not removed. You can follow <a href="https://social.msdn.microsoft.com/Forums/pl/WAVirtualMachinesforWindows/thread/cc9bacfc-2c11-4010-b535-f1b0a141d317">this</a> thread to break lease on the VHD.</p>
<blockquote>
<p>2) To use the DNS name that was created for original VM, you need to delete the cloud service before creating the new virtual machine. Otherwise, you would get an error stating DNS name is already in use.</p>
</blockquote>
<p>*** Efforts are in progress to improve the user experience for this issue.***</p>
<p>&nbsp;</p>
<p><strong>Reason#2</strong> User performed capture operation on a VM</p>
<p>This is by design too. Capture operation is meant to create an image(or template) based on which multiple VMs can be created. Part of the process involves user to sysprep the VM which strips out system specific information (i.e. system name, etc.) from VM , so that it can be used as an Image. Since the system specific information is removed, VM cannot continue as-is. To create a new VM based on the image which was captured, use the following steps.</p>
<ul><!--StartFragment-->
<li>Navigate to new preview <a href="https://manage.windowsazure.com/">portal</a> (Note: if you are using the OrgId, you need to append the OrgId to the URL)</li>
<li>Choose &ldquo;Virtual Machines&rdquo; , Select &ldquo;New&rdquo;</li>
<li>Select &ldquo;From Gallery&rdquo; , Select &ldquo;My Images&rdquo;</li>
<li>Select the Image that was created using &ldquo;Capture&rdquo; operation</li>
<li>Follow the wizard to complete other steps to create virtual machine.</li>
<!--EndFragment--></ul>
<p>&nbsp;I've posted <a href="https://blogs.msdn.com/b/narahari/archive/2013/01/15/windows-azure-virtual-machines-gotcha-s.aspx">another blog post</a> about Windows Azure Virtual Machines - common issues, questions, gotchas that may be helpful.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>Applies To : Windows Azure Virtual Machines</p>
<p>Key words : VM is missing, VM gone, Virtual Machine, Disappeared, Windows Azure</p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Azure Package creation (or Publish) fails with “Build Failed” message in Visual studio output window</title>
      <link>https://docs.microsoft.com/archive/blogs/narahari/windows-azure-package-creation-or-publish-fails-with-build-failed-message-in-visual-studio-output-window</link>
      <pubDate>Fri, 30 Mar 2012 07:37:00 GMT</pubDate>
      <dc:creator><![CDATA[Narahari Dogiparthi [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/narahari/2012/03/30/windows-azure-package-creation-or-publish-fails-with-build-failed-message-in-visual-studio-output-window/</guid>
      <description><![CDATA[Action
Tried to publish Windows Azure Service using Publish option in Visual Studio  or   Tried to...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: Segoe UI;"><b><span style="font-size: Medium;" size="3"><span face="Calibri">Action</span></span></b></span></p>
<p><span style="font-family: Segoe UI; font-size: Medium;" size="3"><span face="Segeo UI">Tried to publish Windows Azure Service using Publish option in Visual Studio</span></span> <span style="font-family: Segoe UI; font-size: Medium;" size="3"> <br /><span face="Segeo UI">or </span></span> <br /> <span style="font-family: Segoe UI; font-size: Medium;" size="3"><span face="Segeo UI">Tried to create a service package using Package option in Visual Studio</span></span></p>
<p>&nbsp;</p>
<p><span style="font-family: Segoe UI;"><b><span style="font-size: Medium;" size="3"><span face="Segeo UI">Result</span></span></b></span></p>
<p><span style="font-family: Segoe UI; font-size: Medium;" size="3"><span face="Segeo UI">Package creation fails with similar messages to below in Visual Studio output window</span></span></p>
<p><span style="font-family: Segoe UI; font-size: small;" face="Segoe UI">Build started: Project: TestApp, Configuration: Release Any CPU ------<br />TestApp -&gt; C:\Projects\TestApp\TestApp\bin\TestApp.dll<br />Build started: Project: TestApp.Azure, Configuration: Release Any CPU ------<br />Publish started: Project: TestApp.Azure, Configuration: Release Any CPU ------<br />Transformed Web.config using Web.Release.config into obj\Release\TransformWebConfig\transformed\Web.config.<br />Done building project "TestApp.Azure.ccproj" -- FAILED.</span></p>
<p><span style="font-family: Segoe UI; font-size: small;" face="Segoe UI">Build FAILED.<br />========== Build: 2 succeeded or up-to-date, 0 failed, 0 skipped =========<br />========== Publish: 0 succeeded, 1 failed, 0 skipped ================</span></p>
<p><span style="font-family: Segoe UI;"><b><span style="font-size: Medium;" face="Segeo UI" size="3">&nbsp;</span></b></span></p>
<p><span style="font-family: Segoe UI;"><b><span style="font-size: Medium;" size="3"><span face="Segeo UI">Symptoms</span></span></b></span></p>
<ul>
<li><span style="font-family: Segoe UI; font-size: Medium;" size="3"><span face="Segeo UI">Issue does not occur for sample, small applications.</span></span></li>
<li><span style="font-family: Segoe UI; font-size: Medium;" size="3"><span face="Segeo UI">There is no message box displayed detailing the exception other than the &ldquo;Build Failed&rdquo; message in VS output window</span></span></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-family: Segoe UI;"><b><span style="font-size: Medium;" size="3"><span face="Segeo UI">Cause</span></span></b></span></p>
<p><span style="font-family: Segoe UI; font-size: Medium;" size="3"><span face="Segeo UI">In most of the cases, issue seems to be occurring due to the OutOfMemoryException in devenv process. If you were to attach a debugger to devenv process which is building the package and troubleshoot the issue, you would see exception similar to below</span></span></p>
<p><br /><span style="font-family: Segoe UI; font-size: small;" face="Segeo UI">Microsoft.Build.Shared.InternalErrorException was unhandled<br />Message=MSB0001: Internal MSBuild Error: Exception of type 'System.OutOfMemoryException' was thrown.<br />=============<br />System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.<br />at System.IO.MemoryStream.set_Capacity(Int32 value)<br />at System.IO.MemoryStream.EnsureCapacity(Int32 value)<br />at System.IO.MemoryStream.Write(Byte[] buffer, Int32 offset, Int32 count)<br />at MS.Internal.IO.Packaging.PackagingUtilities.CopyStream(Stream sourceStream, Stream targetStream, Int64 bytesToCopy, Int32 bufferSize)<br />at MS.Internal.IO.Packaging.SparseMemoryStream.WriteToStream(Stream stream)<br />at MS.Internal.IO.Zip.ZipIOFileItemStream.Save()<br />at MS.Internal.IO.Zip.ZipIOLocalFileBlock.Save()<br />at MS.Internal.IO.Zip.ZipIOBlockManager.SaveContainer(Boolean closingFlag)<br />at MS.Internal.IO.Zip.ZipIOBlockManager.SaveStream(ZipIOLocalFileBlock blockRequestingFlush, Boolean closingFlag)<br />at MS.Internal.IO.Zip.ZipIOModeEnforcingStream.Dispose(Boolean disposing)<br />at System.IO.Stream.Close()<br />at System.IO.Packaging.PackagePart.Close()<br />at System.IO.Packaging.Package.DoClose(PackagePart p)<br />at System.IO.Packaging.Package.DoOperationOnEachPart(PartOperation operation)<br />at System.IO.Packaging.Package.System.IDisposable.Dispose()<br />at Microsoft.ServiceHosting.Tools.Packaging.PackageCreator.CreateRolePackages(ModelProcessor modelProcessor, PackageManifest applicationManifest, Package applicationPackage)<br />at Microsoft.ServiceHosting.Tools.Packaging.PackageCreator.CreatePackage(Stream outputStream)<br />at Microsoft.ServiceHosting.Tools.Packaging.ServiceApplicationPackage.CreateServiceApplicationPackage(String serviceModelFileName, String serviceDescriptionFile, Stream output, IPackageSecurity encrypt, Dictionary`2 namedStreamCollection, String userInfo, EventHandler`1 rolePackagePartAddedHandler)<br />at Microsoft.ServiceHosting.Tools.MSBuildTasks.CSPack.TryCreatePackage(ServiceDefinitionModel sm)<br />at Microsoft.ServiceHosting.Tools.MSBuildTasks.CSPack.Execute()<br />at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()<br />at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask, Boolean&amp; taskResult)<br />at Microsoft.Build.BackEnd.TaskBuilder.InitializeAndExecuteTask(TaskLoggingContext taskLoggingContext, ItemBucket bucket, TaskHost taskHost, TaskExecutionMode howToExecuteTask, Boolean&amp; taskResult)<br />at Microsoft.Build.BackEnd.TaskBuilder.ExecuteBucket(TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask, Dictionary`2 lookupHash)<br />at Microsoft.Build.BackEnd.TaskBuilder.ExecuteTask(TaskExecutionMode mode, Lookup lookup)<br />at Microsoft.Build.BackEnd.TaskBuilder.ExecuteTask(TargetLoggingContext loggingContext, BuildRequestEntry requestEntry, ITargetBuilderCallback targetBuilderCallback, ProjectTargetInstanceChild taskInstance, TaskExecutionMode mode, Lookup inferLookup, Lookup executeLookup)<br />at Microsoft.Build.BackEnd.TargetEntry.ProcessBucket(ITaskBuilder taskBuilder, TargetLoggingContext targetLoggingContext, TaskExecutionMode mode, Lookup lookupForInference, Lookup lookupForExecution)<br />at Microsoft.Build.BackEnd.TargetEntry.ExecuteTarget(ITaskBuilder taskBuilder, BuildRequestEntry requestEntry, ProjectLoggingContext projectLoggingContext)<br />at Microsoft.Build.BackEnd.TargetBuilder.ProcessTargetStack(ITaskBuilder taskBuilder)<br />at Microsoft.Build.BackEnd.TargetBuilder.BuildTargets(ProjectLoggingContext loggingContext, BuildRequestEntry entry, IRequestBuilderCallback callback, String[] targetNames, Lookup baseLookup)<br />at Microsoft.Build.BackEnd.RequestBuilder.BuildProject()<br />at Microsoft.Build.BackEnd.RequestBuilder.BuildAndReport()<br />at Microsoft.Build.BackEnd.RequestBuilder.RequestThreadProc()</span></p>
<p><span style="font-family: Segoe UI; font-size: Medium;" face="Segeo UI" size="3">&nbsp;</span></p>
<p><span style="font-family: Segoe UI;"><b><span face="Segeo UI"><span style="font-size: Medium;" size="3">Resolution</span></span></b></span></p>
<ul>
<li><span style="font-family: Segoe UI;" face="Segeo UI"><span style="font-size: Medium;" size="3">If you have a 64 bit machine, easiest option to resolve the issue would be by creating a package using 64 bit high-end hardware machine. 64 bit machines will provide more system resources to application compared to 32 bit machines.</span></span></li>
<li><span style="font-family: Segoe UI; font-size: Medium;" size="3"><span face="Segeo UI">If you do not have 64 bit machines, you can try stopping as many as services, programs you can and allow Visual Studio to use more memory to resolve the issue. If you are still getting the issue with bare minimum programs/services running on the machine, it is highly unlikely you can resolve the issue using 32 bit machines. I suggest using 64 bit machines.</span></span></li>
</ul>
<p><span style="font-family: Segoe UI; font-size: Medium;" face="Segeo UI" size="3">&nbsp;</span></p>
<p><span style="font-family: Segoe UI;"><b><span style="font-size: Medium;" size="3"><span face="Segeo UI">Applies To:</span></span></b></span></p>
<p><span style="font-family: Segoe UI; font-size: Medium;" size="3"><span face="Segeo UI">Windows Azure SDK 1.6</span></span></p>
<p><span style="font-family: Segoe UI; font-size: Medium;" face="Segeo UI" size="3">&nbsp;</span></p>
<p><span style="font-family: Segoe UI; font-size: Medium;" size="3"><span face="Segeo UI">Hope this helps!</span></span></p>
<p><span style="font-family: Segoe UI; font-size: Medium;" face="Segeo UI" size="3">&nbsp;</span></p>
<p><span style="font-family: Segoe UI; font-size: Medium;" size="3"><span face="Segeo UI">Keywords: Windows Azure, Build Failed, Visual Studio, Package, Publish</span></span></p>]]></content:encoded>
    </item>
    <item>
      <title>DataCacheException:ErrorCode&lt;ERRCA0016&gt;:SubStatus&lt;ES0001&gt; is being thrown when using Windows Azure Cache</title>
      <link>https://docs.microsoft.com/archive/blogs/narahari/datacacheexceptionerrorcodeerrca0016substatuses0001-is-being-thrown-when-using-windows-azure-cache</link>
      <pubDate>Tue, 20 Mar 2012 05:24:00 GMT</pubDate>
      <dc:creator><![CDATA[Narahari Dogiparthi [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/narahari/2012/03/20/datacacheexceptionerrorcodeerrca0016substatuses0001-is-being-thrown-when-using-windows-azure-cache/</guid>
      <description><![CDATA[Problem
Application using Windows Azure Cache has encountered...]]></description>
      <content:encoded><![CDATA[<p><strong><span style="font-family: Segoe UI; font-size: Medium;">Problem</span></strong></p>
<p><span style="font-family: Segoe UI; font-size: Medium;">Application using Windows Azure Cache has encountered "DataCacheException:ErrorCode&lt;ERRCA0016&gt;:SubStatus&lt;ES0001&gt;"</span></p>
<p><span style="font-family: Segoe UI; font-size: Medium;"><strong></strong></span>&nbsp;</p>
<p><span style="font-family: Segoe UI; font-size: Medium;"><strong>Symptoms</strong></span></p>
<ul>
<li><span style="font-family: Segoe UI; font-size: Medium;">Application </span><span style="font-family: Segoe UI; font-size: Medium;">is using Windows Azure Cache</span></li>
</ul>
<ul>
<li><span style="font-family: Segoe UI; font-size: Medium;">Intermittently </span><span style="font-family: Segoe UI; font-size: Medium;">or while storing larger objects, One of the below errors are encountered</span></li>
</ul>
<p style="padding-left: 60px;"><span style="font-family: Segoe UI; font-size: Medium;">[DataCacheException:</span><span style="font-family: Segoe UI; font-size: Medium;">ErrorCode&lt;ERRCA0016&gt;:SubStatus&lt;ES0001&gt;:The connection was </span><span style="font-family: Segoe UI; font-size: Medium;">terminated, possibly due to server or network problems or serialized Object </span><span style="font-family: Segoe UI; font-size: Medium;">size is greater than MaxBufferSize on server. Result of the request is </span><span style="font-family: Segoe UI; font-size: Medium;">unknown.]</span></p>
<p style="padding-left: 60px;"><span style="font-family: Segoe UI; font-size: Medium;">[DataCacheException:</span><span style="font-family: Segoe UI; font-size: Medium;">ErrorCode&lt;ERRCA0017&gt;:SubStatus&lt;ES0006&gt;:There is a temporary </span><span style="font-family: Segoe UI; font-size: Medium;">failure. Please retry later. (One or more specified cache servers are </span><span style="font-family: Segoe UI; font-size: Medium;">unavailable, which could be caused by busy network or servers. For on-premises </span><span style="font-family: Segoe UI; font-size: Medium;">cache clusters, also verify the following conditions. Ensure that security </span><span style="font-family: Segoe UI; font-size: Medium;">permission has been granted for this client account, and check that the </span><span style="font-family: Segoe UI; font-size: Medium;">AppFabric Caching Service is allowed through the firewall on all cache hosts. </span><span style="font-family: Segoe UI; font-size: Medium;">Also the MaxBufferSize on the server must be greater than or equal to the </span><span style="font-family: Segoe UI; font-size: Medium;">serialized object size sent from the client.)]</span></p>
<p style="padding-left: 60px;">&nbsp;</p>
<p><strong><span style="font-family: Segoe UI; font-size: Medium;">Cause</span></strong></p>
<p><span style="font-family: Segoe UI; font-size: Medium;">Size of the </span><span style="font-family: Segoe UI; font-size: Medium;">object application is trying to store in Windows Azure Cache is more than 8 MB. </span><span style="font-family: Segoe UI; font-size: Medium;">As of now, Windows Azure Cache supports objects only up to 8 MB and size is </span><span style="font-family: Segoe UI; font-size: Medium;">measured post the serialization.</span></p>
<p>&nbsp;</p>
<p><strong><span style="font-family: Segoe UI; font-size: Medium;">Resolution</span></strong></p>
<p><span style="font-family: Segoe UI; font-size: Medium;">Before </span><span style="font-family: Segoe UI; font-size: Medium;">storing the objects in Windows Azure Cache, serialize the object and find out </span><span style="font-family: Segoe UI; font-size: Medium;">the size of it and if the size is above 8 MB, split the object into smaller </span><span style="font-family: Segoe UI; font-size: Medium;">chunks, may be byte arrays, etc and then store the byte arrays in Cache.</span></p>
<p><strong><span style="font-family: Segoe UI; font-size: Medium;"></span></strong>&nbsp;</p>
<p><strong><span style="font-family: Segoe UI; font-size: Medium;">References</span></strong></p>
<p><span style="font-family: Segoe UI; font-size: Medium;">API Reference for Windows Azure Caching <br /> <a href="https://msdn.microsoft.com/en-us/library/windowsazure/gg278350.aspx">https://msdn.microsoft.com/en-us/library/windowsazure/gg278350.aspx</a></span></p>
<p><span style="font-family: Segoe UI; font-size: Medium;">Capacity Planning for caching in Windows Azure<br /> <a href="https://msdn.microsoft.com/en-us/library/windowsazure/hh689719(v=VS.103).aspx">https://msdn.microsoft.com/en-us/library/windowsazure/hh689719(v=VS.103).aspx</a></span></p>
<p><span style="font-family: Segoe UI; font-size: Medium;">Maximizing Scalability,Availability, and Performance<br /> <a href="https://msdn.microsoft.com/en-us/library/hh868048.aspx">https://msdn.microsoft.com/en-us/library/hh868048.aspx</a></span></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>DevFC and DFAgent stopped working when using Windows Azure SDK 1.6 to debug, execute cloud application</title>
      <link>https://docs.microsoft.com/archive/blogs/narahari/devfc-and-dfagent-stopped-working-when-using-windows-azure-sdk-1-6-to-debug-execute-cloud-application</link>
      <pubDate>Tue, 21 Feb 2012 06:39:00 GMT</pubDate>
      <dc:creator><![CDATA[Narahari Dogiparthi [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/narahari/2012/02/21/devfc-and-dfagent-stopped-working-when-using-windows-azure-sdk-1-6-to-debug-execute-cloud-application/</guid>
      <description><![CDATA[Problem
DevFC , DFAgent are crashing with a message stating "stopped...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: Segoe UI; font-size: medium;"><b>Problem</b></span></p>
<p><span style="font-family: Segoe UI;"><span style="font-size: medium;">DevFC , DFAgent are crashing with a message stating "stopped working"</span><span style="font-size: medium;"></span></span></p>
<p>&nbsp;</p>
<p><span style="font-family: Segoe UI; font-size: medium;"><b>Symptoms</b></span></p>
<ul>
<li style="margin: 1em;"><span style="font-family: Segoe UI; font-size: medium;">Using latest Windows Azure SDK 1.6, tried to debug a sample application and getting two dialog boxes stating DevFC stopped working, DFAgent stopped working.</span></li>
<li style="margin: 1em;"><span style="font-family: Segoe UI; font-size: medium;">DFAgent.log has below exception details</span></li>
</ul>
<p style="padding-left: 60px;"><span style="font-family: Segoe UI;">[2012/02/17, 10:35:26.706,&nbsp; INFO, 00004648] StorageRoot: c:\dftemp</span><br /><span style="font-family: Segoe UI;"> [2012/02/17, 10:35:26.735,&nbsp; INFO, 00004648] Exception has been thrown by the target of an invocation.</span><br /><span style="font-family: Segoe UI;">[2012/02/17, 10:35:26.770,&nbsp; INFO, 00004648]&nbsp;&nbsp;&nbsp; at System.RuntimeMethodHandle._InvokeConstructor(Object[] args, SignatureStruct&amp; signature, IntPtr declaringType)</span><br /><span style="font-family: Segoe UI;">at System.RuntimeMethodHandle.InvokeConstructor(Object[] args,SignatureStruct signature, RuntimeTypeHandle declaringType)</span><br /><span style="font-family: Segoe UI;">at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlagsinvokeAttr, Binder binder, Object[] parameters, CultureInfo culture)</span><br /><span style="font-family: Segoe UI;">at System.Security.Cryptography.CryptoConfig.CreateFromName(String name,Object[] args)</span><br /><span style="font-family: Segoe UI;">at System.Security.Cryptography.MD5.Create(String algName)</span><br /><span style="font-family: Segoe UI;"> at System.Security.Cryptography.MD5.Create()</span><br /><span style="font-family: Segoe UI;"> at Microsoft.Windows.Azure.Fabric.Cfx.Tracing.CfxTraceSource.Init(StringtraceName, String directory, Guid providerGuid, CfxFileUploader uploader,Boolean enable)</span><br /><span style="font-family: Segoe UI;"> at Microsoft.Windows.Azure.Fabric.Cfx.Tracing.CfxTraceSource..ctor(StringtraceName, String directory, Guid providerGuid) at main(Int32 argc, SByte** argv)</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Segoe UI; font-size: medium;"><b>Cause</b></span></p>
<p><span style="font-family: Segoe UI; font-size: medium;">Local security policy &ldquo;Use FIPS compliant algorithms for encryption, hashing and signing Properties&rdquo; is enabled on the machine we were troubleshooting and MD5 algorithm is not compatible with this policy and hence resulting in unhandled exception</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Segoe UI; font-size: medium;"><b>Resolution</b></span></p>
<p><span style="font-family: Segoe UI; font-size: medium;">Disable&nbsp;"System cryptography: Use FIPS compliant algorithms for encryption, hashing and signing" policy. (Disabled is default option)</span></p>
<p><span style="font-family: Segoe UI;">To disable FIPS compliant algorithms, follow these steps:</span></p>
<ol>
<li><span style="font-family: Segoe UI;">&nbsp;In Control Panel, double-click Administrative Tools .</span></li>
<li><span style="font-family: Segoe UI;">&nbsp;In Administrative Tools , double-click Local Security Policy .&nbsp;</span></li>
<li><span style="font-family: Segoe UI;">&nbsp;In Local Security Policy , expand Local Policies , expand Security Options , and then double-click System cryptography: Use FIPS compliant algorithms for encryption, hashing and signing .</span></li>
<li><span style="font-family: Segoe UI;">&nbsp;In the System cryptography: Use FIPS compliant algorithms for encryption, hashing and signing Properties dialog box, click the Local Security Setting tab.</span></li>
<li><span style="font-family: Segoe UI;">&nbsp;On the Local Security Setting tab, click Disabled , and then click OK .&nbsp;</span></li>
<li><span style="font-family: Segoe UI;">&nbsp;Close Local Security Policy.</span></li>
</ol>
<p>&nbsp;</p>
<p><span style="font-family: Segoe UI; font-size: medium;"><b>More Info</b></span></p>
<p><span style="font-family: Segoe UI; font-size: medium;">If the development environment is Visual Studio 2010, below error is displayed during the compilation stage itself.</span></p>
<p><span style="font-family: Segoe UI;">error CS1504: Source file 'c:\users\user\documents\visual studio 2010\Projects\TempRole\WebRole1\Properties\AssemblyInfo.cs' could not be opened ('This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.')</span></p>
<p>&nbsp;</p>
<p><strong><span style="font-family: Segoe UI;">System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing</span></strong></p>
<p><span style="font-family: Segoe UI;"><a href="https://technet.microsoft.com/en-us/library/cc780081(v=WS.10).aspx">https://technet.microsoft.com/en-us/library/cc780081(v=WS.10).aspx</a></span></p>
<p><span style="font-family: Segoe UI;"><a href="https://support.microsoft.com/kb/811833">https://support.microsoft.com/kb/811833</a></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Key words: DevFC, DFAgent, FIPS, MD5, Windows Azure, SDK 1.6</p>]]></content:encoded>
    </item>
    <item>
      <title>Implementing retry logic for Azure Caching applications made easy!</title>
      <link>https://docs.microsoft.com/archive/blogs/narahari/implementing-retry-logic-for-azure-caching-applications-made-easy</link>
      <pubDate>Thu, 29 Dec 2011 07:44:00 GMT</pubDate>
      <dc:creator><![CDATA[Narahari Dogiparthi [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/narahari/2011/12/29/implementing-retry-logic-for-azure-caching-applications-made-easy/</guid>
      <description><![CDATA[Applications using Azure cache might commonly encounter exceptions similar to below while performing...]]></description>
      <content:encoded><![CDATA[<p style="font-size: medium;"><span>Applications using Azure cache might commonly encounter exceptions similar to below while performing cache operations like get, put. We refer to these kind of errors as t<span>ransient</span> errors.&nbsp; Developer is required to implement&nbsp;retry logic&nbsp;in the application code to shield the application from <span>transient</span> errors.</span></p>
<p style="font-size: 11px; padding: 0px;"><i>ErrorCode&lt;ERRCA0017&gt;:SubStatus&lt;ES0006&gt;:There is a temporary failure. Please retry later. (One or more specified cache servers are unavailable, which could be caused by busy network or servers. For on-premises cache clusters, also verify the following conditions. Ensure that security permission has been granted for this client account, and check that the AppFabric Caching Service is allowed through the firewall on all cache hosts. Also the MaxBufferSize on the server must be greater than or equal to the serialized object size sent from the client.)</i></p>
<p style="font-size: medium;">Thanks to "Transient fault handling application block" from patterns &amp; practices team. It is now very easy to implement sophisticated retry logic in your application. I'm describing the instructions in <b>3 steps here.</b></p>
<ol style="font-size: small;">
<li><b>Add the Transient Fault Handling Application Block to your application</b></li>
<ol style="padding: 15px; margin-left: 25px;">
<li style="margin-bottom: 3px; font-size: 12px;">Install latest version of NuGet from here <a href="https://nuget.org/">https://nuget.org/</a>.</li>
<li style="margin-bottom: 3px; font-size: 12px;">Add a reference to the Transient Fault Handling Application Block assemblies. In Microsoft Visual Studio, right-click your project node in Solution Explorer, and then click <b>Manage NuGet Packages</b>.</li>
<li style="margin-bottom: 3px; font-size: 12px;">Click the <b>Online</b> button, and then in the <b>Search Online</b> box, type <b>topaz</b>.</li>
<li style="margin-bottom: 3px; font-size: 12px;">Click the <b>Install</b> button for the <b>Enterprise Library 5.0 - Transient Fault Handling Application Block</b> package.</li>
<li style="margin-bottom: 3px; font-size: 12px;">Read and accept the license terms for the packages listed.</li>
<li style="margin-bottom: 3px; font-size: 12px;">After NuGet has finished installing the packages, click <b>Close</b>.</li>
<li style="margin-bottom: 3px; font-size: 12px;">NuGet has now updated your project with all the necessary assemblies and references that you need to use the Transient Fault Handling Application Block. The project now also includes a readme file that contains important information about the Transient Fault Handling Application Block.</li>
</ol>
<li><b>Configure retry policy for your application.</b>
<div style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 25px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;" id="codeSnippetWrapper">
<div style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;" id="codeSnippet"><span style="font-size: 9.5pt; font-family: Consolas;"><span style="color: green;">//Add below using statements to your project/module.</span></span>
<p style="margin-bottom: .0001pt; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas; color: blue;">using</span><span style="font-size: 9.5pt; font-family: Consolas;"> Microsoft.Practices.TransientFaultHandling;</span><br /> <span style="font-size: 9.5pt; font-family: Consolas; color: blue;">using</span><span style="font-size: 9.5pt; font-family: Consolas;"> Microsoft.Practices.EnterpriseLibrary.WindowsAzure.TransientFaultHandling;</span><br /> <span style="font-size: 9.5pt; font-family: Consolas; color: blue;">using</span><span style="font-size: 9.5pt; font-family: Consolas;"> Microsoft.Practices.EnterpriseLibrary.WindowsAzure.TransientFaultHandling.Cache;</span></p>
<p style="margin-bottom: .0001pt; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;</span><span style="font-size: 9.5pt; font-family: Consolas;"><span style="color: green;">//&nbsp;I've defined retryStrategy, retryPolicy in page_load event. It is really up to your application requirement where you would like to define these</span></span></p>
<p style="margin-bottom: .0001pt; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;"><span style="color: green;">&nbsp;// Define your retry strategy: in this sample, I'm retrying operation 3 times with 1 second interval</span></span><br /><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;<span style="color: blue;">var</span><span style="font-size: 9.5pt; font-family: Consolas;"> retryStrategy = <span style="color: blue;">new</span> <span style="color: #2b91af;">FixedInterval</span>(3, <span style="color: #2b91af;">TimeSpan</span>.FromSeconds(1));</span></span></p>
<p style="margin-bottom: .0001pt; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;<span style="color: green;">// Define your retry policy here. This sample uses CacheTransientErrorDetectionStrategy </span></span><br /><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;<span style="color: blue;">var</span> retryPolicy = <span style="color: blue;">new</span> <span style="color: #2b91af;">RetryPolicy</span>&lt;<span style="color: #2b91af;">CacheTransientErrorDetectionStrategy</span>&gt;(retryStrategy);</span></p>
<p class="MsoNormal">&nbsp;</p>
</div>
</div>
</li>
<li>
<p><b>Make azure cache calls inside ExecuteAction delegate as shown below.</b></p>
<div style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;" id="codeSnippetWrapper">
<div style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;" id="codeSnippet">
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: green;">// Get notifications from retries from&nbsp; Transient Fault Handling Application Block code</span></span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retryPolicy.Retrying += (sender1, args) =&gt;</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: green;">// Log details of the retry.</span></span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue;">var</span> msg = <span style="color: #2b91af;">String</span>.Format(<span style="color: #a31515;">"Retry - Count:{0}, Delay:{1}, Exception:{2}"</span>,</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; args.CurrentRetryCount, args.Delay, args.LastException);</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: green;">//Logging the notification details to the application trace. </span></span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Trace.Write(msg);</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">DataCache</span> m_cache = <span style="color: #2b91af;">CacheUtil</span>.GetCacheConfig();</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue;">try</span></span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: green;">//In order to use the retry policies, strategies defined in Transient Fault Handling Application Block , user calls to cache must be wrapped with in ExecuteAction delegate</span></span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retryPolicy.ExecuteAction(</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; () =&gt;</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: green;">//I'm just storing simple string object here .. Assuming this call fails, this sample retries the same call 3 times with 1 second interval before it gives up.</span></span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_cache.Put(<span style="color: #a31515;">"MyDataSet"</span>, <span style="color: #a31515;">"StoreString"</span>);</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: green;">//Getting the object from azure cache and printing it on the page. </span></span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Write(m_cache.Get(<span style="color: #a31515;">"MyDataSet"</span>));</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<span style="color: blue;">catch</span> (<span style="color: #2b91af;">DataCacheException</span> dc)</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: green;">// Exception occurred after implementing the Retry logic.</span></span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: green;">//Ideally you should log the exception to your application logs and show user friendly error message on the webpage.</span></span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Trace.Write(dc.GetType().ToString() + dc.Message.ToString() + dc.StackTrace.ToString());</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p style="margin-top: 0cm; margin-right: -70.65pt; margin-bottom: .0001pt; margin-left: 0cm; line-height: normal; text-autospace: none;" class="MsoNormal"><span style="font-size: 9.5pt; font-family: Consolas;">&nbsp;</span></p>
<p style="margin-right: -70.65pt;" class="MsoNormal">&nbsp;</p>
</div>
</div>
</li>
</ol>
<p style="font-size: medium;" dir="ltr"><br />Download the sample source code <b><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/24/08/0410.RetryAzureCache.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-24-08/0410.RetryAzureCache.zip">here</a></b></p>
<p dir="ltr">&nbsp;</p>
<p dir="ltr"><span style="font-size: medium;"><strong>References</strong></span></p>
<p>Windows Server AppFabric Caching - Table of Error Code Strings<br /><a href="https://msdn.microsoft.com/en-us/library/ff921008.aspx">https://msdn.microsoft.com/en-us/library/ff921008.aspx</a></p>
<p>Exception Handling Overview (Windows Server AppFabric Caching) &ndash; Also applicable to Azure AppFabric Caching<br /><a href="https://msdn.microsoft.com/en-us/library/ff637738.aspx">https://msdn.microsoft.com/en-us/library/ff637738.aspx</a></p>
<p>Handling Errors<br /><a href="https://msdn.microsoft.com/en-us/library/ff637704.aspx">https://msdn.microsoft.com/en-us/library/ff637704.aspx</a></p>
<p>Application Exceptions (Windows Server AppFabric Caching)<br /><a href="https://msdn.microsoft.com/en-us/library/ff921006.aspx">https://msdn.microsoft.com/en-us/library/ff921006.aspx</a> &nbsp;</p>
<p>Transient Fault Handling<br /><a href="https://msdn.microsoft.com/en-us/library/hh680901(v=PandP.50).aspx">https://msdn.microsoft.com/en-us/library/hh680901(v=PandP.50).aspx</a></p>
<p dir="ltr"></p>
<p>&nbsp;</p>
<p style="font-size: medium;">Post your comments, feedback using comments section below!</p>]]></content:encoded>
    </item>
  </channel>
</rss>