<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" version="2.0">
  <channel>
    <title>Matevž Gačnik's Weblog - Windows Azure</title>
    <link>https://www.request-response.com/blog/</link>
    <description>Technology Philanthropy</description>
    <image>
      <url>http://www.request-response.com/blog/images/favicon.jpg</url>
      <title>Matevž Gačnik's Weblog - Windows Azure</title>
      <link>https://www.request-response.com/blog/</link>
    </image>
    <language>en-us</language>
    <copyright>Matevz Gacnik</copyright>
    <lastBuildDate>Mon, 10 Apr 2017 14:04:49 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.1.8102.813</generator>
    <managingEditor>matevz.gacnik@gmail.com</managingEditor>
    <webMaster>matevz.gacnik@gmail.com</webMaster>
    <item>
      <trackback:ping>https://www.request-response.com/blog/Trackback.aspx?guid=efe64356-5657-4e26-b145-8abed9feb6aa</trackback:ping>
      <pingback:server>https://www.request-response.com/blog/pingback.aspx</pingback:server>
      <pingback:target>https://www.request-response.com/blog/PermaLink,guid,efe64356-5657-4e26-b145-8abed9feb6aa.aspx</pingback:target>
      <dc:creator>Matevz Gacnik</dc:creator>
      <wfw:comment>https://www.request-response.com/blog/CommentView,guid,efe64356-5657-4e26-b145-8abed9feb6aa.aspx</wfw:comment>
      <wfw:commentRss>https://www.request-response.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=efe64356-5657-4e26-b145-8abed9feb6aa</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
While developing with <a href="https://www.windowsazure.com/">Windows Azure</a> SDK
and local Azure development fabric, when things go wrong, they go really wrong.
</p>
        <p>
It could something as obscure as leaving an empty <font face="Courier New"><configSections /></font> element somewhere in <font face="Courier New">Web.config</font> or a certificate
issue.
</p>
        <p>
The problem is, that before Visual Studio attaches a debugger into a IIS worker process,
a lot of things can go wrong. What you get, it this:
</p>
        <p>
          <img border="0" src="content/binary/AzureDebugFail.png" />
        </p>
        <p>
There's no <strong>Event Log</strong> entry, nothing in a typical dev fabric temp
folder (always, check <font face="Courier New">'C:\Users\<useraccount>
\AppData\Local\Temp\Visual Studio Web Debugger.log'
</useraccount></font> first), nada.
</p>
        <p>
Poking deeper, what you need to do is allow IIS to respond properly. By default IIS
only displays complete error details for local addresses. So, to get a detailed report
you need to use a local address.
</p>
        <p>
You can get a local address by fiddling with the site binding with IIS Manager and
changing what Azure SDK does, so: 
</p>
        <ul>
          <li>
First, start IIS Management Console.</li>
          <li>
Then right click on your <font face="Courier New">deployment(*).*</font> and select <font face="Courier New"> Edit
Bindings</font>.</li>
          <li>
Select <font face="Courier New">All Unassigned</font></li>
        </ul>
        <p>
          <img border="0" src="content/binary/AzureDebugFail21.png" />
        </p>
        <p>
If you hit your web / service role using the new local address (could be something
like <font face="Courier New"><a href="http://127.0.0.1:82">http://127.0.0.1:82</a></font>),
you are most likely getting the full disclosure, like this:
</p>
        <p>
          <img border="0" src="content/binary/AzureDebugFail3.png" />
        </p>
        <p>
In this case, a service was dispatched into dev fabric, which had an empty <font face="Courier New"><configSections /></font> element somewhere in <font face="Courier New">Web.config</font>. The web role
was failing before Visual Studio could attach a debugger, and only <font face="Courier New">HTTP
500</font> was returned through normal means of communication.
</p>
        <img width="0" height="0" src="https://www.request-response.com/blog/aggbug.ashx?id=efe64356-5657-4e26-b145-8abed9feb6aa" />
      </body>
      <title>Debugging Windows Azure DevFabric HTTP 500 Errors</title>
      <guid isPermaLink="false">https://www.request-response.com/blog/PermaLink,guid,efe64356-5657-4e26-b145-8abed9feb6aa.aspx</guid>
      <link>https://www.request-response.com/blog/PermaLink,guid,efe64356-5657-4e26-b145-8abed9feb6aa.aspx</link>
      <pubDate>Mon, 10 Apr 2017 14:04:49 GMT</pubDate>
      <description>&lt;p&gt;
While developing with &lt;a href="https://www.windowsazure.com/"&gt;Windows Azure&lt;/a&gt; SDK
and local Azure development fabric, when things go wrong, they go really wrong.
&lt;/p&gt;
&lt;p&gt;
It could something as obscure as leaving an empty &lt;font face="Courier New"&gt; 
&lt;configSections /&gt;
&lt;/font&gt; element somewhere in &lt;font face="Courier New"&gt;Web.config&lt;/font&gt; or a certificate
issue.
&lt;/p&gt;
&lt;p&gt;
The problem is, that before Visual Studio attaches a debugger into a IIS worker process,
a lot of things can go wrong. What you get, it this:
&lt;/p&gt;
&lt;p&gt;
&lt;img border=0 src="content/binary/AzureDebugFail.png"&gt;
&lt;/p&gt;
&lt;p&gt;
There's no &lt;strong&gt;Event Log&lt;/strong&gt; entry, nothing in a typical dev fabric temp
folder (always, check &lt;font face="Courier New"&gt;'C:\Users\&lt;useraccount&gt;
\AppData\Local\Temp\Visual Studio Web Debugger.log'
&lt;/font&gt; first), nada.
&lt;/p&gt;
&lt;p&gt;
Poking deeper, what you need to do is allow IIS to respond properly. By default IIS
only displays complete error details for local addresses. So, to get a detailed report
you need to use a local address.
&lt;/p&gt;
&lt;p&gt;
You can get a local address by fiddling with the site binding with IIS Manager and
changing what Azure SDK does, so: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
First, start IIS Management Console.&lt;/li&gt;
&lt;li&gt;
Then right click on your &lt;font face="Courier New"&gt;deployment(*).*&lt;/font&gt; and select &lt;font face="Courier New"&gt; Edit
Bindings&lt;/font&gt;.&lt;/li&gt;
&lt;li&gt;
Select &lt;font face="Courier New"&gt;All Unassigned&lt;/font&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;img border=0 src="content/binary/AzureDebugFail21.png"&gt;
&lt;/p&gt;
&lt;p&gt;
If you hit your web / service role using the new local address (could be something
like &lt;font face="Courier New"&gt;&lt;a href="http://127.0.0.1:82"&gt;http://127.0.0.1:82&lt;/a&gt;&lt;/font&gt;),
you are most likely getting the full disclosure, like this:
&lt;/p&gt;
&lt;p&gt;
&lt;img border=0 src="content/binary/AzureDebugFail3.png"&gt;
&lt;/p&gt;
&lt;p&gt;
In this case, a service was dispatched into dev fabric, which had an empty &lt;font face="Courier New"&gt; 
&lt;configSections /&gt;
&lt;/font&gt; element somewhere in &lt;font face="Courier New"&gt;Web.config&lt;/font&gt;. The web role
was failing before Visual Studio could attach a debugger, and only &lt;font face="Courier New"&gt;HTTP
500&lt;/font&gt; was returned through normal means of communication.
&lt;/p&gt;
&lt;img width="0" height="0" src="https://www.request-response.com/blog/aggbug.ashx?id=efe64356-5657-4e26-b145-8abed9feb6aa" /&gt;</description>
      <comments>https://www.request-response.com/blog/CommentView,guid,efe64356-5657-4e26-b145-8abed9feb6aa.aspx</comments>
      <category>.NET 4.0 - WCF</category>
      <category>Windows Azure</category>
    </item>
    <item>
      <trackback:ping>https://www.request-response.com/blog/Trackback.aspx?guid=5f21919f-1068-40ca-acf9-61352524b06b</trackback:ping>
      <pingback:server>https://www.request-response.com/blog/pingback.aspx</pingback:server>
      <pingback:target>https://www.request-response.com/blog/PermaLink,guid,5f21919f-1068-40ca-acf9-61352524b06b.aspx</pingback:target>
      <dc:creator>Matevz Gacnik</dc:creator>
      <wfw:comment>https://www.request-response.com/blog/CommentView,guid,5f21919f-1068-40ca-acf9-61352524b06b.aspx</wfw:comment>
      <wfw:commentRss>https://www.request-response.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5f21919f-1068-40ca-acf9-61352524b06b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
There are a couple of Windows Azure management tools, scripts and PowerShell commandlets
available, but I find <a href="http://wapmmc.codeplex.com">Windows Azure Platform
Management Tool</a> (MMC snap-in) one of the easiest to install and use for different
Windows Azure subscriptions.
</p>
        <p>
The problem is the tool has not been updated for almost a year and is this failing
when you try to install it on the latest Windows Azure SDK (currently v1.6).
</p>
        <p>
          <a href="http://wapmmc.codeplex.com/workitem/7624">Here</a>'s the solution.
</p>
        <img width="0" height="0" src="https://www.request-response.com/blog/aggbug.ashx?id=5f21919f-1068-40ca-acf9-61352524b06b" />
      </body>
      <title>The Case of Lightweight Azure MMC Snap-In Not Installing on Azure SDK 1.6</title>
      <guid isPermaLink="false">https://www.request-response.com/blog/PermaLink,guid,5f21919f-1068-40ca-acf9-61352524b06b.aspx</guid>
      <link>https://www.request-response.com/blog/PermaLink,guid,5f21919f-1068-40ca-acf9-61352524b06b.aspx</link>
      <pubDate>Sat, 26 Mar 2016 10:36:53 GMT</pubDate>
      <description>&lt;p&gt;
There are a couple of Windows Azure management tools, scripts and PowerShell commandlets
available, but I find &lt;a href="http://wapmmc.codeplex.com"&gt;Windows Azure Platform
Management Tool&lt;/a&gt; (MMC snap-in) one of the easiest to install and use for different
Windows Azure subscriptions.
&lt;/p&gt;
&lt;p&gt;
The problem is the tool has not been updated for almost a year and is this failing
when you try to install it on the latest Windows Azure SDK (currently v1.6).
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://wapmmc.codeplex.com/workitem/7624"&gt;Here&lt;/a&gt;'s the solution.
&lt;/p&gt;
&lt;img width="0" height="0" src="https://www.request-response.com/blog/aggbug.ashx?id=5f21919f-1068-40ca-acf9-61352524b06b" /&gt;</description>
      <comments>https://www.request-response.com/blog/CommentView,guid,5f21919f-1068-40ca-acf9-61352524b06b.aspx</comments>
      <category>Windows Azure</category>
    </item>
    <item>
      <trackback:ping>https://www.request-response.com/blog/Trackback.aspx?guid=f0b41f3b-6c0f-430b-8a6e-043e48a5712b</trackback:ping>
      <pingback:server>https://www.request-response.com/blog/pingback.aspx</pingback:server>
      <pingback:target>https://www.request-response.com/blog/PermaLink,guid,f0b41f3b-6c0f-430b-8a6e-043e48a5712b.aspx</pingback:target>
      <dc:creator>Matevz Gacnik</dc:creator>
      <wfw:comment>https://www.request-response.com/blog/CommentView,guid,f0b41f3b-6c0f-430b-8a6e-043e48a5712b.aspx</wfw:comment>
      <wfw:commentRss>https://www.request-response.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f0b41f3b-6c0f-430b-8a6e-043e48a5712b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
There's a notion of Windows Guest OS versions in Windows Azure. Guest OS versions
can actually be (in Q1 2012) either a stripped down version of <strong>Windows Server
2008</strong> or a similiar version of <strong>Windows Server 2008 R2</strong>.
</p>
        <p>
You can upgrade your guest OS in <a href="http://windows.azure.com">Windows Azure
Management Portal</a>:
</p>
        <p align="left">
          <img border="1" src="content/binary/AzureGuestOSs.png" />
        </p>
        <p>
Not that it makes much difference, especially while developing .NET solutions, but
I like to be on the newest OS version all the time.
</p>
        <p>
The problem is that the defaults are stale. In 1.6 version of the Windows Azure SDK,
the default templates all specify the following:
</p>
        <p>
          <font face="Courier New">ServiceConfiguration serviceName="YourServiceName"<br />
xmlns="</font>
          <font face="Courier New">http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"</font>
          <font face="Courier New">"<br /><strong>osFamily="1"</strong><br />
osVersion="*"&gt;<br />
...<br />
ServiceConfiguration </font>
        </p>
        <p>
The <font face="Courier New">osFamily</font> attribute defines OS version, with <font face="Courier New">1</font> being
Windows Server 2008 and <font face="Courier New">2</font> being Windows Server 2008
R2. If you omit the <font face="Courier New">osFamily</font> attribute, the default
is <font face="Courier New">1</font> too! Actually this attribute <em>should </em>probably
move to the <font face="Courier New">Role</font> element, since it defines the version
of the role's guest OS.
</p>
        <p>
          <font face="Courier New">ServiceConfiguration serviceName="YourServiceName"<br />
xmlns="</font>
          <font face="Courier New">http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"</font>
          <font face="Courier New">osFamily="1" 
<br />
osVersion="*"&gt; 
<br /><strong>Role name="YourRoleName1"</strong><br />
instances count="2" 
<br />
... </font>
          <font face="Courier New">
            <br />
            <strong>Role</strong>
            <br />
Role name="YourRoleName2" 
<br />
Instances count="1" 
<br />
... 
<br />
Role 
<br />
ServiceConfiguration </font>
        </p>
        <p>
It doesn't make sense to have it normalized over all roles. Also, this schema makes
it impossible to leave it out in VM role instances, where it gets ignored.
</p>
        <p>
The <font face="Courier New">osVersion</font> attribute defines the version which
should be deployed for your guest OS. The format is <font face="Courier New">*</font> or <font face="Courier New">WA-GUEST-OS-M.m_YYYYMM-nn</font>.
You should <em>never </em>use the latter one. Asterisk, normally, means 'please upgrade
all my instances automatically'. Asterisk <em>is your friend</em>.
</p>
        <p>
If you <strong>want/need Windows Server 2008 R2</strong>, change it in your service
configuration XML.
</p>
        <p>
What this means is, that even if you publish and upgrade your guest OS version in
the <a href="http://windows.azure.com">Azure Management Portal</a>, you will get reverted
the next time you update your app from within Visual Studio.
</p>
        <img width="0" height="0" src="https://www.request-response.com/blog/aggbug.ashx?id=f0b41f3b-6c0f-430b-8a6e-043e48a5712b" />
      </body>
      <title>The Case of Guest OS Versioning in Windows Azure</title>
      <guid isPermaLink="false">https://www.request-response.com/blog/PermaLink,guid,f0b41f3b-6c0f-430b-8a6e-043e48a5712b.aspx</guid>
      <link>https://www.request-response.com/blog/PermaLink,guid,f0b41f3b-6c0f-430b-8a6e-043e48a5712b.aspx</link>
      <pubDate>Sun, 31 Mar 2013 20:40:01 GMT</pubDate>
      <description>&lt;p&gt;
There's a notion of Windows Guest OS versions in Windows Azure. Guest OS versions
can actually be (in Q1 2012) either a stripped down version of &lt;strong&gt;Windows Server
2008&lt;/strong&gt; or a similiar version of &lt;strong&gt;Windows Server 2008 R2&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
You can upgrade your guest OS in &lt;a href="http://windows.azure.com"&gt;Windows Azure
Management Portal&lt;/a&gt;:
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;img border="1" src="content/binary/AzureGuestOSs.png"&gt;
&lt;/p&gt;
&lt;p&gt;
Not that it makes much difference, especially while developing .NET solutions, but
I like to be on the newest OS version all the time.
&lt;/p&gt;
&lt;p&gt;
The problem is that the defaults are stale. In 1.6 version of the Windows Azure SDK,
the default templates all specify the following:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;ServiceConfiguration serviceName="YourServiceName"&lt;br /&gt;
xmlns="&lt;/font&gt; &lt;font face="Courier New"&gt;http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"&lt;/font&gt; &lt;font face="Courier New"&gt;"&lt;br /&gt;
&lt;strong&gt;osFamily="1"&lt;/strong&gt;
&lt;br /&gt;
osVersion="*"&gt;&lt;br /&gt;
...&lt;br /&gt;
ServiceConfiguration &lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
The &lt;font face="Courier New"&gt;osFamily&lt;/font&gt; attribute defines OS version, with &lt;font face="Courier New"&gt;1&lt;/font&gt; being
Windows Server 2008 and &lt;font face="Courier New"&gt;2&lt;/font&gt; being Windows Server 2008
R2. If you omit the &lt;font face="Courier New"&gt;osFamily&lt;/font&gt; attribute, the default
is &lt;font face="Courier New"&gt;1&lt;/font&gt; too! Actually this attribute &lt;em&gt;should &lt;/em&gt;probably
move to the &lt;font face="Courier New"&gt;Role&lt;/font&gt; element, since it defines the version
of the role's guest OS.
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;ServiceConfiguration serviceName="YourServiceName"&lt;br /&gt;
xmlns="&lt;/font&gt; &lt;font face="Courier New"&gt;http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"&lt;/font&gt; &lt;font face="Courier New"&gt;osFamily="1" 
&lt;br /&gt;
osVersion="*"&gt; 
&lt;br /&gt;
&lt;strong&gt;Role name="YourRoleName1"&lt;/strong&gt; 
&lt;br /&gt;
instances count="2" 
&lt;br /&gt;
... &lt;/font&gt; &lt;font face="Courier New"&gt; 
&lt;br /&gt;
&lt;strong&gt;Role&lt;/strong&gt; 
&lt;br /&gt;
Role name="YourRoleName2" 
&lt;br /&gt;
Instances count="1" 
&lt;br /&gt;
... 
&lt;br /&gt;
Role 
&lt;br /&gt;
ServiceConfiguration &lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
It doesn't make sense to have it normalized over all roles. Also, this schema makes
it impossible to leave it out in VM role instances, where it gets ignored.
&lt;/p&gt;
&lt;p&gt;
The &lt;font face="Courier New"&gt;osVersion&lt;/font&gt; attribute defines the version which
should be deployed for your guest OS. The format is &lt;font face="Courier New"&gt;*&lt;/font&gt; or &lt;font face="Courier New"&gt;WA-GUEST-OS-M.m_YYYYMM-nn&lt;/font&gt;.
You should &lt;em&gt;never &lt;/em&gt;use the latter one. Asterisk, normally, means 'please upgrade
all my instances automatically'. Asterisk &lt;em&gt;is your friend&lt;/em&gt;.
&lt;/p&gt;
&lt;p&gt;
If you &lt;strong&gt;want/need Windows Server 2008 R2&lt;/strong&gt;, change it in your service
configuration XML.
&lt;/p&gt;
&lt;p&gt;
What this means is, that even if you publish and upgrade your guest OS version in
the &lt;a href="http://windows.azure.com"&gt;Azure Management Portal&lt;/a&gt;, you will get reverted
the next time you update your app from within Visual Studio.
&lt;/p&gt;
&lt;img width="0" height="0" src="https://www.request-response.com/blog/aggbug.ashx?id=f0b41f3b-6c0f-430b-8a6e-043e48a5712b" /&gt;</description>
      <comments>https://www.request-response.com/blog/CommentView,guid,f0b41f3b-6c0f-430b-8a6e-043e48a5712b.aspx</comments>
      <category>Windows Azure</category>
    </item>
  </channel>
</rss>