<?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>Sroun's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/sroun/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/sroun/feed.xml</link>
    <description>Blogging about my passion for .NET Development, IIS and everything else in between.</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:50:33 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>AllowSubDirConfig Clarification</title>
      <link>https://docs.microsoft.com/archive/blogs/sroun/allowsubdirconfig-clarification</link>
      <pubDate>Thu, 13 Nov 2014 23:39:00 GMT</pubDate>
      <dc:creator><![CDATA[Sroun [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sroun/2014/11/13/allowsubdirconfig-clarification/</guid>
      <description><![CDATA[The other day, I had a discussion with my fellow coworkers about the impact of the allowSubDirConfig...]]></description>
      <content:encoded><![CDATA[<p>The other day, I had a discussion with my fellow coworkers about the impact of the allowSubDirConfig attribute from the VirtualDirectory settings.</p>
<p><a href="https://www.iis.net/configreference/system.applicationhost/sites/site/application/virtualdirectory">https://www.iis.net/configreference/system.applicationhost/sites/site/application/virtualdirectory</a></p>
<p><code>allowSubDirConfig: </code></p>
<ul>
<li><code></code><code>Optional Boolean attribute.</code></li>
<li><code></code><code>Specifies whether IIS looks for Web.config files in content directories lower than the current level (<strong>true</strong>) or does not look for Web.config files in content directories lower than the current level (<strong>false</strong>).</code></li>
<li><code>The default value is <code>true</code>.</code></li>
</ul>
<p>The description is quite clear. Basically, IIS will stop looking for Web.config files in sub directories when allowSubDirConfig=false. Actual, it is recommended to set it to false to improve Web Application performance as explained by the article below:<br /><a href="https://blogs.msdn.com/b/carmelop/archive/2012/12/27/iis7-s-performance-slower-than-iis6.aspx">https://blogs.msdn.com/b/carmelop/archive/2012/12/27/iis7-s-performance-slower-than-iis6.aspx</a></p>
<p>But one should ask what IIS is trying to find.&nbsp;By setting the flag to "false", does it&nbsp;tell IIS to ignore all the&nbsp;web.config files in sub directories or&nbsp;just settings related to IIS?<br />Indeed, because of the distributed nature of IIS configurations, it is possible that IIS&nbsp;settings&nbsp;being&nbsp;spread across multiple web.config files as described by this article: <br /><a href="https://www.iis.net/learn/get-started/planning-your-iis-architecture/the-configuration-system-in-iis-7">https://www.iis.net/learn/get-started/planning-your-iis-architecture/the-configuration-system-in-iis-7</a></p>
<p><span style="font-family: arial,helvetica,sans-serif;">So a Web.config for a subdirectory will be accessed if one of these two conditions is true:</span></p>
<ol>
<li><span style="font-family: arial,helvetica,sans-serif;"><em>If the directory is set up as a virtual directory, rather than a subdirectory.</em></span></li>
<li><span style="font-family: arial,helvetica,sans-serif;"><em>If there is a request to an aspx page, which causes asp.net to be involved.&nbsp;Which means that&nbsp;asp.net will apply the settings from &lt;System.web&gt; in the config file even if allowSubDirConfig=false. For settings outside of &lt;System.web&gt;, they will be ignored when allowSubDirConfig=false. They will also be locked out from the configuration editor in IIS manager.</em></span></li>
</ol>
<p>Beware of&nbsp;these rules whenever you want to change allowSubDirConfig setting&nbsp;from "true" to "false" as it may affect the behavior of your website.</p>
<p>Cheers.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>How to cleanly remove and reinstall IIS on desktop and server</title>
      <link>https://docs.microsoft.com/archive/blogs/sroun/how-to-cleanly-remove-and-reinstall-iis-on-desktop-and-server</link>
      <pubDate>Sat, 13 Sep 2014 08:21:55 GMT</pubDate>
      <dc:creator><![CDATA[Sroun [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sroun/2014/09/13/how-to-cleanly-remove-and-reinstall-iis-on-desktop-and-server/</guid>
      <description><![CDATA[IIS is heavily dependent on Windows Process Activation Service (WAS). WAS manages processes,...]]></description>
      <content:encoded><![CDATA[<p>IIS is heavily dependent on Windows Process Activation Service (WAS). WAS manages processes, configuration and many more aspect of the IIS webserver. Uninstalling IIS Webserver Role alone will not be enough. We need to remove WAS and all of its dependents first.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/42/1854.desktopWAS.PNG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-42/1854.desktopWAS.PNG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/42/1854.desktopWAS.PNG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-42/1854.desktopWAS.PNG" alt="" border="0" /></a></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Fixing "Object reference not set to an instance of an object" when using Shared Configuration in IIS8.x</title>
      <link>https://docs.microsoft.com/archive/blogs/sroun/fixing-object-reference-not-set-to-an-instance-of-an-object-when-using-shared-configuration-in-iis8-x</link>
      <pubDate>Fri, 25 Jul 2014 11:46:00 GMT</pubDate>
      <dc:creator><![CDATA[Sroun [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sroun/2014/07/25/fixing-object-reference-not-set-to-an-instance-of-an-object-when-using-shared-configuration-in-iis8-x/</guid>
      <description><![CDATA[When setup Shared Configuration in IIS8.x, user may receive the error below.

This error reappears...]]></description>
      <content:encoded><![CDATA[<p>When setup Shared Configuration in IIS8.x, user may receive the error below.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/42/7723.SharedConfigError.PNG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-42/7723.SharedConfigError.PNG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/42/7723.SharedConfigError.PNG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-42/7723.SharedConfigError.PNG" alt="" width="406" height="152" border="0" /></a></p>
<p>This error reappears every times you try to save the Shared Configuration Settings. To fix it, you can install the Central SSL Certificate Support role service from Server Manager like below:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/42/3542.CCSInstall.PNG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-42/3542.CCSInstall.PNG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/42/3542.CCSInstall.PNG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-42/3542.CCSInstall.PNG" alt="" border="0" /></a></p>
<p>If you do not wish to do that, then you have to create&nbsp;this key in the registry and voila:</p>
<p><em><span style="color: #1f497d; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS\CentralCertProvider</span></em></p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Possible root cause for AppFabric Error Code ERRCAdmin025</title>
      <link>https://docs.microsoft.com/archive/blogs/sroun/possible-root-cause-for-appfabric-error-code-errcadmin025</link>
      <pubDate>Tue, 13 May 2014 10:04:00 GMT</pubDate>
      <dc:creator><![CDATA[Sroun [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sroun/2014/05/13/possible-root-cause-for-appfabric-error-code-errcadmin025/</guid>
      <description><![CDATA[While trying to start AppFabric Cluster with PowerShell cmdlet Start-CacheCluster, I receive the...]]></description>
      <content:encoded><![CDATA[<p>While trying to start AppFabric Cluster with PowerShell cmdlet <code>Start-CacheCluster, I receive the message below:</code></p>
<p><code><code>Start-CacheCluster : Error occurred while performing the operation :<br />ErrorCode&lt;ERRCAdmin025&gt;:SubStatus&lt;ES0001&gt;:Time-out occurred in starting the<br />cluster.<br />At line:1 char:1<br />+ Start-CacheCluster<br />+ ~~~~~~~~~~~~~~~~~~<br />&nbsp;&nbsp;&nbsp; + CategoryInfo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : NotSpecified: (:) [Start-CacheCluster], DataCach<br />&nbsp;&nbsp; eException<br />&nbsp;&nbsp;&nbsp; + FullyQualifiedErrorId : ERRCAdmin025,Microsoft.ApplicationServer.Caching<br />&nbsp;&nbsp; .Commands.StartCacheClusterCommand</code></code></p>
<p><code><code>According to the&nbsp;AppFabric Error Code reference (<a href="https://msdn.microsoft.com/en-us/library/ff921008(v=azure.10).aspx">https://msdn.microsoft.com/en-us/library/ff921008(v=azure.10).aspx)</a>, this is a Cache Administration timeout.&nbsp;&nbsp;</code></code></p>
<p><code><code>Maybe there was so some permission issue with the DB. So I switched to using XML configuration with no luck. So what is really causing this? Another great place to look is the AppFabric Event logging located in "Application and Service Logs -&gt; Microsoft -&gt; Windows -&gt; Application server -&nbsp;system services -&gt; Admin"</code></code></p>
<p><code><code></code></code>&nbsp;</p>
<p><code><code><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/42/6445.AppFabricEventLogs.PNG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-42/6445.AppFabricEventLogs.PNG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/42/6445.AppFabricEventLogs.PNG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-42/6445.AppFabricEventLogs.PNG" alt="" width="266" height="286" border="0" /></a></code></code></p>
<p><code><code>In there one of the top error is ErrorCode&lt;ERRCMS0011&gt;:SubStatus&lt;ES0001&gt;:The host cache data size specified must be less than total physical memory.<br />That is! Earlier I forgot that&nbsp;I had decreased the size of our physical drive on the AppFabric Server.&nbsp;Reducing the cache size setting (less than the physical memory size)in the cluster configuration solved the issue.</code></code></p>
<p><code><code><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/42/4621.AppFabricError.PNG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-42/4621.AppFabricError.PNG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/42/4621.AppFabricError.PNG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-42/4621.AppFabricError.PNG" alt="" border="0" /></a></code></code></p>
<p><code><code></code></code>&nbsp;</p>
<p><code><code></code></code><code><code><br /></code></code>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Solving 500.21 after setting up IIS8 Application Initialization</title>
      <link>https://docs.microsoft.com/archive/blogs/sroun/solving-500-21-after-setting-up-iis8-application-initialization</link>
      <pubDate>Sun, 04 May 2014 22:47:00 GMT</pubDate>
      <dc:creator><![CDATA[Sroun [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sroun/2014/05/04/solving-500-21-after-setting-up-iis8-application-initialization/</guid>
      <description><![CDATA[IIS Application Initialization module allows web applications to be more responsive after an...]]></description>
      <content:encoded><![CDATA[<p>IIS Application Initialization module allows web applications to be more responsive after an application pool recycle.</p>
<p><a href="https://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-application-initialization">https://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-application-initialization</a></p>
<p>While toying with it today by following the instructions in the link&nbsp;above, I received a nasty 500.21 error page like the one below. The "preload" functionality was working fine but the redirection to the splash page would generate the error.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/42/2330.50021.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-42/2330.50021.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/42/2330.50021.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-42/2330.50021.png" alt="" border="0" /></a></p>
<p>Based on the error page, we can conclude that the&nbsp;Application Initialization&nbsp;configuration seems to be working at the server level. But every&nbsp;request during the warm up process is still being handled by a managed&nbsp;handler.</p>
<p>The "interweb" didn't yield anything (which prompted me to write this blog). So looking into my applicationhost.config in C:\System32\inetserv\config, I discovered that nowhere the&nbsp;warmup module&nbsp;is being&nbsp;specified. A quick way to do this is to go to the Module feature in the IIS Manager. I selected at the web site level but it shouldn't matter. In the Module feature, select "Configure Native Modules" in the Actions pane. All I have to do is to select the ApplicationInitializationModule check box and click ok (given that the feature has been installed properly). And VOILA, my splash page now shows up correctly while the warm up is in process.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/42/0728.modules.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-42/0728.modules.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/42/0728.modules.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-42/0728.modules.png" alt="" border="0" /></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/61/42/4722.config.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-42/4722.config.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/42/4722.config.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-42/4722.config.png" alt="" border="0" /></a></p>
<p>&nbsp;&nbsp;</p>]]></content:encoded>
    </item>
  </channel>
</rss>