<?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>Farida</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/farida1/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/farida1/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:20:41 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Infrastructure as Code-Azure Environment Deployment using ARM templates, DSC, PowerShell and VSTS</title>
      <link>https://docs.microsoft.com/archive/blogs/farida1/infrastructure-as-code-azure-environment-deployment-using-arm-templates-dsc-powershell-and-vsts</link>
      <pubDate>Mon, 13 Nov 2017 20:09:27 GMT</pubDate>
      <dc:creator><![CDATA[Farida Bharmal_Microsoft]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/farida1/?p=125</guid>
      <description><![CDATA[I had an amazing opportunity to automate the Azure Infrastructure creation using ARM templates,...]]></description>
      <content:encoded><![CDATA[I had an amazing opportunity to<strong> automate the Azure Infrastructure creation using ARM templates, DSC(Desired State Configuration), PowerShell.</strong> <strong>The deployment of the artifacts was done using VSTS</strong>(Visual Studio Online). The templates are highly parameterized so that it can be leveraged for other environments needing similar setup. VSTS is used to deploy these environments to Azure so that changes can be tracked.

The following core fundamentals have been the guiding principles for this project:
<strong>a. Tracking any environmental changes that gets deployed to Azure.</strong>
<strong>b. Infrastructure as Code.</strong>
<strong>c. One Click Deployment.</strong>
<strong>d. Reusable Code.</strong>

As part of this project, the artifacts have been created and used to create the environment in Azure

<strong>SQL Server Environment</strong>
The SQL environments created has the following artifacts. Most of the artifact values (like VM names, locations image used…) are specified in parameters input file
- VMs with SQL on IaaS
- VMs are configured in a two-node cluster
- VM names are created based on the parameters
- TAGs added to the VMs as per requirements
- SQL Listeners and Availability Groups Added
- SQL Always On
- SQL Witness VM
- VMs use Availability Zones for Higher resiliency
- VMs joined to the domain specified in the parameters
- VMs deployed to the Network and Subnet specified
- Managed Disk attached to the VM as per the specifications
- NICs with Accelerated Networking Enabled
- VMs have software like antivirus and monitoring Agents installed

<strong>Application Servers</strong>
The Application environments created has the following artifacts. All of the artifact values (like VM names, location, image, TAG values, #of VMs…) are specified in parameters input file
- ‘X’ number of VMs
- TAGs added to the VMs as per requirements
- VM names are created based on the parameters
- VMs use Availability Zones for Higher resiliency
- VMs joined to the domain
- VMs deployed to the Network and Subnet specified
- Managed Disk attached to the VM
- NICs with Accelerated Networking Enabled
- VMs behind a n nternal Load Balancer(ILB)
- ILB rules and Probes
- VMs added to the ILB
- Storage account for diagnostics logs
- VMs have software like antivirus and monitoring Agents installed

<strong>Domain Controllers</strong>
The Domain Controller environment created has the following artifacts. All of the artifact values (like VM names, location, image, TAG values, #of VMs…) are specified in parameters input file
- Primary Domain Controller
- Backup Domain Controller
- Active Directory
- Create ADForest
- TAGs added to the VMs as per requirements
- VMs are named as per customer standards
- VMs use Availability Zones for Higher resiliency
- VMs joined to the domain
- VMs deployed to the Network and Subnet specified
- Managed Disk attached to the VM
- NICs with Accelerated Networking Enabled
- Storage account for diagnostics logs
- VMs have software like antivirus and monitoring Agents installed

<strong>Application Gateway and Traffic Manager</strong>
Separate templates for Application Gateway and another template for Traffic Manager. So that each one can be independently deployed.
The Application Gateways and Traffic Manager created has the following artifacts. All the artifact values (like AppG name, location, size …) are specified in parameters input file
- Application Gateway(AppG) Instances created
- AppG deployed to the Network and Subnet specified
- Backend Pool configuration-ILBs added to the AppG backend pool
- FrontEnd IP configurations
- Listeners added to AppG
- Protocols Specified
- Health Probes
- AppG Rules
- WAF settings
- Traffic Manager Profile Created
- AppG added to Traffic Manager Endpoints

<strong>VSTS for Deployments</strong>
VSTS helps to fulfill the requirement of tracking changes and one click deployment. We setup the VSTS Build Definitions for deployment to Azure
-ARM templates are checked in VSTS
-DSC scripts are checked in VSTS
-Build Definitions for each unit of deployment that are currently setup to deploy these ARM templates to Azure
-Going forward there can be release definitions so that there can be:
o Approval processes
o Deployment to different environments
o Build definitions can combine units of work as one deployment for a new environment
o Scheduled Deployments
- Deliver training to the required teams to educate them about this setup and how to use it]]></content:encoded>
    </item>
    <item>
      <title>How to configure Azure Websites to communicate with Azure WebRole on Internal Load Balancer Endpoint</title>
      <link>https://docs.microsoft.com/archive/blogs/farida1/how-to-configure-azure-websites-to-communicate-with-azure-webrole-on-internal-load-balancer-endpoint</link>
      <pubDate>Tue, 18 Nov 2014 09:44:00 GMT</pubDate>
      <dc:creator><![CDATA[Farida Bharmal_Microsoft]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/farida1/2014/11/18/how-to-configure-azure-websites-to-communicate-with-azure-webrole-on-internal-load-balancer-endpoint/</guid>
      <description><![CDATA[I recently worked on configuring Azure Websites to communicate with Azure Web Role on Internal Load...]]></description>
      <content:encoded><![CDATA[<p>I recently worked on configuring Azure Websites to communicate with Azure Web Role on Internal Load Balancer(ILB) Endpoint. The requirement was that the Azure WebRole should not have an external endpoint.</p>
<p>There are 3 things to configure:</p>
<p>1. Configure <a title="Azure Websites Virtual Network" href="https://azure.microsoft.com/blog/2014/09/15/azure-websites-virtual-network-integration/">Azure Websites Virtual Network</a>&nbsp;. If you plan to first create Virtual Network, make sure to have a Dynamic routing gateway and to have Point to Site enabled.</p>
<p>2. &nbsp;Configure&nbsp;<a title="Internal Load Balancer" href="https://azure.microsoft.com/blog/2014/08/04/announcing-release-of-visual-studio-2013-update-3-and-azure-sdk-2-4/"> Internal Load Balancer</a> in the Azure WebRole. (Review the section Internal Load Balancing (ILB) in the referenced article). The changes are to Azure Web Role cscfg and csdef files.</p>
<p>3. Configure the <a title="Web Role to connect to Virtual Network " href="https://michaelwasham.com/2012/08/06/connecting-web-or-worker-roles-to-a-simple-virtual-network-in-windows-azure/">Web Role to connect to Virtual Network </a>&nbsp;</p>
<p>4. Get the IP address of the Internal Load Balancer (ILB) using Powershell: Get-AzureDeployment -ServiceName websitetowebroleilbvnet2 | Get-AzureInternalLoadBalancer</p>
<p>5. The final config(cscfg) file for the Web Role will look like:</p>
<p>&nbsp;&lt;VirtualNetworkSite name="VNET NAME" /&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;AddressAssignments&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;InstanceAddress roleName="WebRole1"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Subnets&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Subnet name="Subnet-1"/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Subnets&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/InstanceAddress&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;/AddressAssignments&gt;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;LoadBalancers&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;LoadBalancer name="FaridaLB"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;FrontendIPConfiguration type="private" subnet="Subnet-1" /&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/LoadBalancer&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;/LoadBalancers&gt;</p>
<p>&nbsp;&nbsp; &lt;/NetworkConfiguration&gt;</p>
<p>&nbsp;</p>
<p>6. In the WebRole definition file, reference the load balancer</p>
<p>CSDEF:</p>
<p>&lt;Endpoints&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;InputEndpoint name="Endpoint1" protocol="http" port="80" loadBalancer="FaridaLB" /&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;/Endpoints&gt;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Azure Powershell error: Authentication Failed: A security token exception occurred for the received JWT token</title>
      <link>https://docs.microsoft.com/archive/blogs/farida1/azure-powershell-error-authentication-failed-a-security-token-exception-occurred-for-the-received-jwt-token</link>
      <pubDate>Tue, 07 Oct 2014 07:51:16 GMT</pubDate>
      <dc:creator><![CDATA[Farida Bharmal_Microsoft]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/farida1/2014/10/07/azure-powershell-error-authentication-failed-a-security-token-exception-occurred-for-the-received-jwt-token/</guid>
      <description><![CDATA[Issue: When running Azure Powershell cmdlets like Get-AzureVM, user gets the following error:...]]></description>
      <content:encoded><![CDATA[<p>Issue: <br />When running Azure Powershell cmdlets like Get-AzureVM, user gets the following error: <br />Authentication Failed: A security token exception occurred for the received JWT token."</p>
<p>Resolution: <br />1.Close the Azure Powershell window<br />2.Delete the XML files in %appdata%\Windows Azure Powershell.<br />3.Open Azure Powershell and run Add-AzureAccount.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Error when remote debugging Azure Cloud Service "There was a failure to launch the remote debugger"</title>
      <link>https://docs.microsoft.com/archive/blogs/farida1/error-when-remote-debugging-azure-cloud-service-there-was-a-failure-to-launch-the-remote-debugger</link>
      <pubDate>Mon, 19 May 2014 15:52:00 GMT</pubDate>
      <dc:creator><![CDATA[Farida Bharmal_Microsoft]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/farida1/2014/05/19/error-when-remote-debugging-azure-cloud-service-there-was-a-failure-to-launch-the-remote-debugger/</guid>
      <description><![CDATA[Error when remote debugging Azure Cloud Service "There was a failure to launch the remote...]]></description>
      <content:encoded><![CDATA[<p>Error when remote debugging Azure Cloud Service "There was a failure to launch the remote debugger"</p>
<p>I recently saw an issue when trying to do remote debugging, we got the following error: "There was a failure to launch the remote debugger"</p>
<p>Steps Taken:<br />1.We setup another machine in Azure and installed Visual Studio. We were able to successfully attach the debugger to Azure Cloud Service process and do remote debugging. <br />This step proves whether it is a client side issue or a problem with the way you have configured remote debugger in your Azure role.</p>
<p>2. The above step proved that the problem was either with the client machine or the firewall. <br />--The debugger uses ports 30400-30424 and 31400-31424<br />--The incoming request comes on a different port than the outgoing request.Some firewalls will not allow new incoming request on a different port.</p>
<p>Remote Debugging feature was released in Azure SDK 2.2.&nbsp;</p>
<p>The following articles describe how the remote debugging works and how to configure it.&nbsp;</p>
<p><a href="https://msdn.microsoft.com/library/azure/ff683670.aspx">https://msdn.microsoft.com/library/azure/ff683670.aspx</a></p>
<p><a href="https://www.codeproject.com/Articles/723677/Remote-debugging-Windows-Azure-Cloud-Services-from">https://www.codeproject.com/Articles/723677/Remote-debugging-Windows-Azure-Cloud-Services-from</a></p>
<p><a href="https://blogs.msdn.com/b/cie/archive/2014/01/24/windows-azure-remote-debugging.aspx">https://blogs.msdn.com/b/cie/archive/2014/01/24/windows-azure-remote-debugging.aspx</a></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>How to find out the results of Azure Management calls when using REST APIs</title>
      <link>https://docs.microsoft.com/archive/blogs/farida1/how-to-find-out-the-results-of-azure-management-calls-when-using-rest-apis</link>
      <pubDate>Wed, 07 May 2014 11:30:00 GMT</pubDate>
      <dc:creator><![CDATA[Farida Bharmal_Microsoft]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/farida1/2014/05/07/how-to-find-out-the-results-of-azure-management-calls-when-using-rest-apis/</guid>
      <description><![CDATA[Recently, I got the following question: How can we find out the result of some Azure Management call...]]></description>
      <content:encoded><![CDATA[<p>Recently, I got the following question: How can we find out the result of some Azure Management call when using REST API.</p>
<p>For this sample, we will use REST API to increase the number of cores for the deployment.</p>
<p>All REST API calls are asynchronous. This means that as soon as the initial call is accepted by the server, the server returns 202.</p>
<p>If you want to know the status of executing that request, then you have to make get-operationstatus call with the operation ID of the previous call.</p>
<p>The correct process to increase the number of cores using REST API would be:</p>
<p>1.Make a POST call to change deployment configuration to increase the number of cores:<br />The Change Deployment Configuration is documented at <a href="https://msdn.microsoft.com/en-us/library/ee460809.aspx">https://msdn.microsoft.com/en-us/library/ee460809.aspx</a><br />Example: <a href="https://management.core.windows.net/<subscription-id>/services/hostedservices/<cloudservice-name>/deploymentslots/<deployment-slot>/">https://management.core.windows.net/&lt;subscription-id&gt;/services/hostedservices/&lt;cloudservice-name&gt;/deploymentslots/&lt;deployment-slot&gt;/</a></p>
<p>&nbsp;</p>
<p>2. The above call will return 202 if the request is accepted. It will also return an&nbsp; operation ID in the header: x-ms-request-id: 92fc04ca3f8e91538560ae8e964ec0</p>
<p>&nbsp;</p>
<p>3. Using the operation ID returned from the above POST call, you make a GET operationstatus call. This call will let you know the result of execution of &lsquo;change the deployment configuration&rsquo;. Did the operation succeeded or failed?<br />The get-operationstatus call is documented at: <a href="https://msdn.microsoft.com/en-us/library/azure/ee460783.aspx">https://msdn.microsoft.com/en-us/library/azure/ee460783.aspx</a><br />Example: <a href="https://management.core.windows.net/<subscription-id>/operations/<request-id">https://management.core.windows.net/&lt;subscription-id&gt;/operations/&lt;request-id</a>&gt;</p>]]></content:encoded>
    </item>
    <item>
      <title>How to validate that Traffic Manager is distributing traffic as per the policy?</title>
      <link>https://docs.microsoft.com/archive/blogs/farida1/how-to-validate-that-traffic-manager-is-distributing-traffic-as-per-the-policy</link>
      <pubDate>Wed, 30 Apr 2014 08:46:00 GMT</pubDate>
      <dc:creator><![CDATA[Farida Bharmal_Microsoft]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/farida1/2014/04/30/how-to-validate-that-traffic-manager-is-distributing-traffic-as-per-the-policy/</guid>
      <description><![CDATA[How to validate that Traffic Manager is distributing traffic as per the policy?
This blog mainly...]]></description>
      <content:encoded><![CDATA[<p>How to validate that Traffic Manager is distributing traffic as per the policy?</p>
<p>This blog mainly talks about the Traffic Manager's Round Robin Policy</p>
<p>In my day to day job I have seen the following question come up:<br />Traffic manager does not seem to distribute traffic as per the policy. How can we validate this?</p>
<p>The following article explains how traffic manager distributes the traffic:<br /><a href="https://msdn.microsoft.com/en-us/library/azure/dn339010.aspx">https://msdn.microsoft.com/en-us/library/azure/dn339010.aspx</a></p>
<p>There is one more important factor to consider:<br />Each client machine uses a DNS server. The clients DNS server caches the endpoint entries for the timeframe specified in Traffic Managers TTL(default value is 300sec). Hence all the machines that use the same DNS server will go to the same endpoint for the 300sec(TTL timeframe).</p>
<p>Example: <br />I have defined Round Robin load balancing and have TTL as 300sec for traffic manager. I have 2 cloud services in my traffic manager. <br />When I tested from 10 different client machines that use the same DNS server, all the 10 client machines went to the same endpoint for 300sec(DNS TTL) and it appeared that traffic manager was not distributing the traffic.</p>
<p>To check if traffic manager is distributing the traffic as per the policy I used the following site: <a href="https://cloudmonitor.ca.com/en/ping.php">https://cloudmonitor.ca.com/en/ping.php</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/64/70/5141.TrafficManager.PNG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-64-70/5141.TrafficManager.PNG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/64/70/5141.TrafficManager.PNG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-64-70/5141.TrafficManager.PNG" alt="" border="0" /></a></p>
<p>This site uses machines at different locations in the world and hence different DNS. I saw that resulting IP ping was almost 50% for each IP.<br />(We can ignore the&nbsp; packet lost Result because the cloud services will not respond to Pings.)</p>
<p>Thanks to Kevin for explaining this concept and sharing the method to validate the traffic manager load distribution.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>How to get the exact URI, Headers and Body for Azure Management REST API ?</title>
      <link>https://docs.microsoft.com/archive/blogs/farida1/how-to-get-the-exact-uri-headers-and-body-for-azure-management-rest-api</link>
      <pubDate>Wed, 30 Apr 2014 07:47:00 GMT</pubDate>
      <dc:creator><![CDATA[Farida Bharmal_Microsoft]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/farida1/2014/04/30/how-to-get-the-exact-uri-headers-and-body-for-azure-management-rest-api/</guid>
      <description><![CDATA[How to get the exact URI, Headers and body for REST API calls for Azure management?
The REST API...]]></description>
      <content:encoded><![CDATA[<p>How to get the exact URI, Headers and body for REST API calls for Azure management?</p>
<p>The REST API calls are well documented for Azure.<br /><a href="https://msdn.microsoft.com/en-us/library/azure/ee460799.aspx">https://msdn.microsoft.com/en-us/library/azure/ee460799.aspx</a></p>
<p>However, at times when you try to make the REST calls, you get 400 Bad request error message.</p>
<p>To make sure that you are using the right URL, headers and body for the REST call, you can try the following:<br />1. You can enable debugging for powershell using the following command:<br />PS C:\&gt; $DebugPreference="Continue"<br />Azure Powershell uses REST calls.</p>
<p>2. After this run the powershell cmdlet equivalent to the REST API call. Example, I wanted to set the Azure deployment status, I ran the following command:<br />set-azuredeployment -Status</p>
<p>3. When this cmdlet executed, it showed me the exact REST URL, headers and body that was needed to do the function using REST APIs.<br />I can use any http tool or code to create HTTP request and make the REST API call. The following is a good blog if you wish to write your own code<br /><a href="https://blogs.msdn.com/b/mcsuksoldev/archive/2013/08/08/azure-calling-the-azure-management-rest-api.aspx">https://blogs.msdn.com/b/mcsuksoldev/archive/2013/08/08/azure-calling-the-azure-management-rest-api.aspx</a></p>
<p>PowerShell cmdlet and output:<br />PS C:\&gt; $DebugPreference="Continue"<br />PS C:\&gt; set-azuredeployment -Status</p>
<p>cmdlet Set-AzureDeployment at command pipeline position 1<br />Supply values for the following parameters:<br />(Type !? for Help.)<br />ServiceName: test<br />Slot: production<br />NewStatus: running<br />DEBUG: 9:35:58 AM - SetAzureDeploymentCommand begin processing with ParameterSet 'Status'.<br />DEBUG: ============================ HTTP REQUEST ============================</p>
<p>HTTP Method:POST</p>
<p>Absolute Uri:<br /><a href="https://management.core.windows.net/0f736ead-5ffa-4cf8-927d-47e7a8f0b/services/hostedservices/test/deploymentslots/Production/?comp=status">https://management.core.windows.net/0f736ead-5ffa-4cf8-927d-47e7a8f0b/services/hostedservices/test/deploymentslots/Production/?comp=status</a></p>
<p>Headers:<br />x-ms-version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 2014-04-01<br />User-Agent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :<br />Microsoft.WindowsAzure.Management.Compute.ComputeManagementClient/0.9.0.0,WindowsAzurePowershell/v0.8.0<br />client-tracking-id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 1</p>
<p>Body:<br />&lt;UpdateDeploymentStatus xmlns="<a href="https://schemas.microsoft.com/windowsazure">https://schemas.microsoft.com/windowsazure</a>"&gt;<br />&nbsp; &lt;Status&gt;Running&lt;/Status&gt;<br />&lt;/UpdateDeploymentStatus&gt;</p>]]></content:encoded>
    </item>
    <item>
      <title>Http 404 when browsing to website hosted in Azure Web Role</title>
      <link>https://docs.microsoft.com/archive/blogs/farida1/http-404-when-browsing-to-website-hosted-in-azure-web-role</link>
      <pubDate>Mon, 21 Apr 2014 14:37:00 GMT</pubDate>
      <dc:creator><![CDATA[Farida Bharmal_Microsoft]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/farida1/2014/04/21/http-404-when-browsing-to-website-hosted-in-azure-web-role/</guid>
      <description><![CDATA[The intend of this blog is to show the general troubleshooting flow for some common http errors. For...]]></description>
      <content:encoded><![CDATA[<p>The intend of this blog is to show the general troubleshooting flow for some common http errors. For this blog, I have chosen http 404 error message and will go through the steps of troubleshooting this error.</p>
<p><br />ISSUE: <br />When trying to browse to a website hosted in Azure Web Role, I was getting &ldquo;HTTP Error 404 &ndash; File or Directory not found&rdquo;.<br />This error could be caused due to many different reasons. I have shown the troubleshooting for one reason.</p>
<p>TROBLESHOOTING STEPS: <br />1.&nbsp;Remote into the Azure Web Role. <br />2.&nbsp;Go to IIS Manager. (You can get to IIS Manager by typing inetmgr)<br />3.&nbsp;Go to your site. Click Content View at the bottom.<br />&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/64/70/6330.IISContentView.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-64-70/6330.IISContentView.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/64/70/6330.IISContentView.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-64-70/6330.IISContentView.png" alt="" width="281" height="240" border="0" /></a></p>
<p>4.&nbsp;Right click the default.aspx and click browse. See if the webpage comes up. This is to see if IIS is able to load a simple webpage or not. <br />5.&nbsp;If the above does not work, then put a simple test.html file in the same location as default.aspx and browse to test.html file and see if it works. In Azure Web roles, the contents are generally located at E:\Siteroot\0 (0Role instance ID)<br />6.&nbsp;In my case, the default.aspx and test.html did not display and I continued to get the 404 error.<br />7.&nbsp;Rename the Global.asax file to Global.asax.txt and the web.config file to web.config.txt. Check if you can browse to the page after renaming these files.<br />8.&nbsp;In my case, I was able to browse to the page after renaming the above 2 files. It means, that there was some code in either global.asax or web.config that was preventing execution of my test.html page.<br />9.&nbsp;I reviewed the code. In global.asax there was a redirect to <a href="https://mysite.com"><span style="background-color: #ffff00;">https</span>://mysite.com</a> . However, there was no SSL certificate or endpoint that was configured.<br />10.&nbsp;To make sure that we could browse to the https site, we created and installed a self-generated SSL certificate using the steps in <a title="How To Setup SSL" href="https://www.iis.net/learn/manage/configuring-security/how-to-set-up-ssl-on-iis">this</a> article.&nbsp;(See the steps under the section &lsquo;IIS Manager&rsquo;).<br />11.&nbsp;After installing the self-signed certificate, we were able to browse to the site using SSL. Renamed the global.asax and web.config to its original names. I could still access my test.html page.<br />12.&nbsp;The web role was redeployed by adding the SSL certificate and updating the web roles configuration and definition files (csdef and cscfg). You can configure SSL for Azure Web Roles by using the steps in <a title="SSL for Web Role" href="https://azure.microsoft.com/en-us/documentation/articles/cloud-services-configure-ssl-certificate/">this</a> article.&nbsp;</p>
<p>This was a very simple error. However, for complicated errors, the following log files can be helpful:<br />1.&nbsp;IIS Logs <br />2.&nbsp;Failed Request Tracing (FREB logs)<br />3.&nbsp;Fiddler/Netmon traces<br />4.&nbsp;Stack traces from the code<br />5.&nbsp;Debugging the code using a debugger</p>
<p>&nbsp;</p>
<p>CAUSE OF THE PROBLEM: <br />The global.asax had redirection code and it was redirecting me to https endpoint. However the https endpoint was not configured and SSL certificate was not defined in the role config and role definition files.</p>
<p>&nbsp;</p>
<p>RESOLUTION: <br />Install a&nbsp;self-signed certificate and tested the site. Redeployed the role after configuring SSL for the site.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Cannot RDP into Windows Azure Web Role</title>
      <link>https://docs.microsoft.com/archive/blogs/farida1/cannot-rdp-into-windows-azure-web-role</link>
      <pubDate>Mon, 21 Apr 2014 13:12:00 GMT</pubDate>
      <dc:creator><![CDATA[Farida Bharmal_Microsoft]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/farida1/2014/04/21/cannot-rdp-into-windows-azure-web-role/</guid>
      <description><![CDATA[ISSUE: Cannot RDP into Windows Azure Web Role.
Remote Desktop used to work for the Windows Azure...]]></description>
      <content:encoded><![CDATA[<p>ISSUE: Cannot RDP into Windows Azure Web Role.</p>
<p>Remote Desktop used to work for the Windows Azure Web Role instance. One day when trying to do remote desktop to Windows Azure Web Role(after entering username and password) I see the following error:<br />An authentication error has occurred.<br />The Local Security Authority cannot be contacted<br />Remote computer: computername.cloudapp.net</p>
<p>&nbsp;</p>
<p>CAUSE: Remote desktop certificate had expired.</p>
<p>&nbsp;</p>
<p>RESOLUTION: Updated my RDP certificate expiration date. This can be done from the Azure portal.&nbsp;</p>
<ul>
<li>From the portal, select your web role.</li>
<li>Click the configure tab.</li>
<li>&nbsp;At the bottom, click download. This will open the 'Configure Remote Desktop' screen.</li>
<li>Make sure that the 'Expires On' date is some date in future. If not, update the date to a future date.</li>
<li>You will have to enter the Password. This can be the same as the old password you used before for remote desktop.</li>
<li>After the changes are saved to Azure, try to RDP into the instance and make sure it works.<span style="font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">&nbsp;<br /><br /> <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/64/70/3817.RDPUpdateCertificate.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-64-70/3817.RDPUpdateCertificate.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/64/70/3817.RDPUpdateCertificate.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-64-70/3817.RDPUpdateCertificate.png" alt="" border="0" /></a><br /></span></li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
  </channel>
</rss>