<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Care, Share and Grow!</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/saurabh_singh/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/saurabh_singh/feed.xml</link>
    <description>Troubleshooting tips for IIS, ASP, ASP.Net, SSL and some random thoughts</description>
    <lastBuildDate>Thu, 30 Jun 2016 03:18:11 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Moved on....</title>
      <link>https://docs.microsoft.com/archive/blogs/saurabh_singh/moved-on</link>
      <pubDate>Thu, 30 Jun 2016 03:18:11 GMT</pubDate>
      <dc:creator><![CDATA[Saur212]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/saurabh_singh/?p=765</guid>
      <description><![CDATA[I recently tried to login to my blog on msdn and wow, It allowed me. Btw, I have moved on from...]]></description>
      <content:encoded><![CDATA[I recently tried to login to my blog on msdn and wow, It allowed me. Btw, I have moved on from Microsoft.

This post is added to just let people know that I won't be responding to your comments here since I see people have been asking questions around the topics. phew! It's been more than 5 years now since I stopped blogging here so lot of the posts may not be relevant anymore. call it legacy posts :).]]></content:encoded>
    </item>
    <item>
      <title>Anonymous PUT in WebDAV on IIS 7+ deprecated</title>
      <link>https://docs.microsoft.com/archive/blogs/saurabh_singh/anonymous-put-in-webdav-on-iis-7-deprecated</link>
      <pubDate>Fri, 10 Dec 2010 13:40:00 GMT</pubDate>
      <dc:creator><![CDATA[Saur212]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/saurabh_singh/2010/12/10/anonymous-put-in-webdav-on-iis-7-deprecated/</guid>
      <description><![CDATA[I have been seeing this question being put up on lot many forums plus we are getting a lot of...]]></description>
      <content:encoded><![CDATA[<p>I have been seeing this question being put up on lot many forums plus we are getting a lot of support cases opened by customers requesting for this feature. </p>
<p>In IIS 7+ we have changed the feature of allowing PUT, MKCOL, PROPPATCH, COPY, MOVE, and DELETE to require authentication. Anonymous PROPFINDs are allowed for file listings, but others require the request be authenticated. This was done as a security measure. In IIS 6.0 we did have the provision of using the above methods using anonymous requests from the clients but not anymore. I think the reason people still want this feature in IIS 7 is because of some 3<sup>rd</sup> party applications like CURL etc which send Anonymous PUT requests to a WebDAV site. </p>
<p>Lot of people who have migrated from IIS 6.0 to IIS 7+ still request for this functionality. Please note that this is neither recommended nor supported by Microsoft Product Support Services (PSS). </p>
<p>Here, however I will show you a method of achieving a similar feature without users requiring to send user credentials for WebDAV requests. Basically the WebDAV module checks whether the request is authenticated or not. If not (i.e. using Anonymous authentication) WebDAV module will respond saying &ldquo;Anonymous access not allowed&rdquo; in the FREB logs. </p>
<p><a href="file:///C:/Users/saurabsi/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles398AF20A/image[8].png"></a>&nbsp;<img border="0" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/76/44/7041.FREB.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-76-44/7041.FREB.png" /></p>
<p>There is a KB article which talks about this as well <a href="http://support.microsoft.com/kb/2021641/en-us">http://support.microsoft.com/kb/2021641/en-us</a></p>
<p>So one way of hacking this is to convince WebDAV module that your request is authenticated. So before the WebDAV module gets a chance to handle the request ensure we change the identity context as an authenticated user. In IIS 7 we can write a native ISAPI filter (preferred for performance reasons) or a managed HTTP Module which can intercept the request and change the user context to some pre-configured windows identity. Or else you can read a username/password from a configuration file (or hard code the vale) and then create a basic Base64 hash for the combination and add it to the Request header collection. This in my opinion is a neater way than the first method. </p>
<p><i>Here are the steps for injecting Basic Base64 hash in the Request header collection:</i> </p>
<ul>
<li>Create a custom HTTP Module (attached with the post) and on Application_BeginRequest read the username/password (either a local or a domain user credential, your choice). Here in the sample I have hardcoded these values but you can read it from a configuration file or by some other means. After we have the username and the password, we concatenate the strings separated by a colon (:), and then compute the Base64 hash for this string and then add a custom HTTP header (&ldquo;Authorization&rdquo;) to the incoming request with this Base64 value. The processing in the remaining pipeline thinks that the end user has sent a Basic authentication credential whereas our module is adding this in the BeginRequest event. </li>
<li>Compile the Http Module and copy the dll in to the bin folder under your WebDAV site in IIs 7.</li>
<li>Ensure that the custom HTTP Module is invoked before the WebDAV module. WebDAV module thinks that the request is authenticated and hence allows operations like PUT/DELETE etc.</li>
<li>In the Web.config file under your WebDAV site, add the following:</li>
</ul>
<blockquote>
<p>&lt;modules runManagedModulesForWebDavRequests="true"&gt; </p>
<p>&lt;add name="CustomBasicWebDAVModule" type="CustomBasicWebDAVModule"/&gt; </p>
<p>&lt;/modules&gt;</p>
</blockquote>
<ul>
<li>Ensure that we have added the following attribute runManagedModulesForWebDavRequests="true" to the Modules section as shown above.</li>
<li>Last but not least enable only Basic authentication for your WebDAV site (Don&rsquo;t worry user/client won&rsquo;t be required to pass in any credentials).</li>
</ul>
<p>Now go ahead and you should be able to use PUT/DELETE etc verbs for the WebDAV requests for this site anonymously (well, not technically correct though). </p>
<p>Thanks to <a href="http://forums.iis.net/members/robmcm.aspx">Robert</a> for the valuable suggestion on this <a href="http://forums.iis.net/t/1148011.aspx">forum</a> and the inputs. </p>
<p><b></b></p>
<p><b>**PLEASE NOTE THAT THIS IS NEITHER RECOMMENDED NOR SUPPORTED BY MICROSOFT PSS. USE IT WITH CAUTION.</b></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/10/34/20/HTTP%20Module%20class.txt" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-10-34-20/HTTP-Module-class.txt">HTTP Module class.txt</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Backing up ASP.Net configuration files</title>
      <link>https://docs.microsoft.com/archive/blogs/saurabh_singh/backing-up-asp-net-configuration-files</link>
      <pubDate>Wed, 01 Dec 2010 18:00:18 GMT</pubDate>
      <dc:creator><![CDATA[Saur212]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/saurabh_singh/2010/12/01/backing-up-asp-net-configuration-files/</guid>
      <description><![CDATA[Recently I authored a fast publish KB article on backing up configuration files for ASP.Net on IIS...]]></description>
      <content:encoded><![CDATA[<p>Recently I authored a fast publish KB article on backing up configuration files for ASP.Net on IIS 6/7.</p>
<p><a href="http://support.microsoft.com/kb/2434810">http://support.microsoft.com/kb/2434810</a></p>
<p>If you would like PSS to write on more topics that may interest you please put up your suggestions.</p>
<p>HTH</p>]]></content:encoded>
    </item>
    <item>
      <title>CRL checking by IIS</title>
      <link>https://docs.microsoft.com/archive/blogs/saurabh_singh/crl-checking-by-iis</link>
      <pubDate>Wed, 01 Dec 2010 17:20:00 GMT</pubDate>
      <dc:creator><![CDATA[Saur212]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/saurabh_singh/2010/12/01/crl-checking-by-iis/</guid>
      <description><![CDATA[&middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; When a Client certificate is presented to...]]></description>
      <content:encoded><![CDATA[<p><span lang="EN" style="font-family: Symbol; color: #333333; font-size: 10pt; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN;"><span style="mso-list: Ignore;">&middot;<span style="font: 7pt 'Times New Roman';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">When a Client certificate is presented to an IIS website, IIS looks for the CRL verification to determine the validity of the certificate, much in a similar way a browser does the CRL checking for an SSL enabled website. When IIS receives the client cert it looks into the CDP (CRL Distribution point) under the details tab of the client cert. It then uses one of the HTTP/LDAP links&nbsp;listed there to download the CRL on the server. This link will basically be pointing to one of the CDP servers hosted by the CA. IIS uses this link to download the CRL for future verification purpose. This is overall what IIS does. Obviously internally it is making calls to Crypto&nbsp;Subsystem for all these activities.<o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">When does IIS kick off a new download of a CRL? Does it look at the Next Update field within the CRL and then keep a log (somewhere on IIS or registry) on when it requires to download the next CRL from the CA?<o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">==&gt;<o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">To answer the above question in specific it depends upon various settings/scenarios as described below. <o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">IIS by default looks into the downloaded CRL for the next update field. This is stored in its own memory cache and also physically in the server under either <o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">%windir%\System32\config\systemprofile\Application Data\Microsoft\CryptnetUrlCache\MetaData (on Win2k3 server), or <o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">%windir%\System32\config\systemprofile\AppData\LocalLow\Microsoft\CryptnetUrlCache\MetaData (on Win2k8) <o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">You can find the cached CRLs using this command as well <strong><span style="font-family: 'Garamond','serif';">Certutil &ndash;urlcache CRL</span></strong> at a command-line prompt. <o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">If the current date is well behind the &lsquo;Next Update&rsquo; field value it will use the current CRL to validate the client certificates. <o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">CRL verification depends upon the metabase properties (IIS 6.0) like CertCheckMode, RevocationFreshnessTime and RevocationURLRetrievalTimeout. <o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">1. If CertCheckMode is set to 0, IIS does the CRL verification based on the cached CRL on the server (based on its properties like current date and &lsquo;Next Update&rsquo; field). <o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">If the current date is in the range of &lsquo;Effective Date&rsquo; and &lsquo;Next Update&rsquo; fields it will use the local CRL cache. If the current date is beyond &lsquo;Next Update&rsquo; field it will try downloading the CRL from the remote location and use it. <o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">2. If CertCheckMode is set to 1 Certificate revocation checking is not performed. <o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">3. If CertCheckMode is set to 2 Certificate revocation verification will be done based on the cached CRL on the IIS server. IIS will not try to connect to the remote server to download the CRL even if it has expired and in&nbsp;which case CRL verification will obviously fail. <o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">4. If CertCheckMode is set to 4 Certificate revocation verification will be done by downloading the remote CRL, even if we have the valid cached CRL on the server. It ignores the cached CRL completely. <o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">The frequency with which we download the remote CRL depends upon the value of the metabase property called RevocationFreshnessTime. <o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">If this property is set to 1 (true) then the CRL on the server is updated from the remote location (even though local cached CRL is valid) every 1 day by default. If the metabase property RevocationFreshnessTime is set to a higher value (instead of 1) IIS uses its value directly to look for the frequency with which CRL is updated. Remember the value defines the time interval in seconds.<o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">This default timeout&nbsp;interval for updating the CRL is controlled by another metabase property called RevocationURLRetrievalTimeout. This defines the timeout interval in milliseconds. You can increase this value if you think there might be some latency in downloading the CRL from the remote server.<o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When you are dealing with the 4th option above ensure you check this </span><a target="_blank" href="http://blogs.msdn.com/b/friis/archive/2010/04/15/iis-crl-checking-certcheckmode-4-and-revocationfreshnesstime-metabase-property.aspx"><span style="color: #0000ff; font-size: small;">link</span></a><span style="font-size: small;"> in case you are getting this same issue.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">Hopefully the above explanation gives you an idea as to how and when IIS asks the Crypto subsystem to retrieve a copy of the CRL. This is finally done by Schannel during TLS negotiation. <o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">In IIS 7+ you can use netsh commands to set different values for CRL verification (Equivalent to setting CertCheckMode in IIS 6.0). Refer to </span><a target="_blank" href="http://msdn.microsoft.com/en-us/library/aa364647.aspx"><span style="font-size: small;">this</span></a><span style="font-size: small;"> and </span><a target="_blank" href="http://forums.iis.net/t/1100044.aspx"><span style="color: #0000ff; font-size: small;">this</span></a><span style="font-size: small;"> for details.<o:p></o:p></span></span></p>
<p><span lang="EN" style="font-family: 'Garamond','serif'; color: #333333; mso-ansi-language: EN;"><span style="font-size: small;">Ciao<o:p></o:p></span></span></p>
<p class="MsoNormal"><o:p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></o:p></p>]]></content:encoded>
    </item>
    <item>
      <title>FREB Log file Formatter</title>
      <link>https://docs.microsoft.com/archive/blogs/saurabh_singh/freb-log-file-formatter</link>
      <pubDate>Thu, 23 Sep 2010 09:35:00 GMT</pubDate>
      <dc:creator><![CDATA[Saur212]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/saurabh_singh/2010/09/23/freb-log-file-formatter/</guid>
      <description><![CDATA[IIS 7/7.5 has a module called Failed Request Tracing (aka FREB) using which we can capture a lot of...]]></description>
      <content:encoded><![CDATA[<p>IIS 7/7.5 has a module called Failed Request Tracing (aka FREB) using which we can capture a lot of valuable information in the modular pipeline within IIS. We in PSS use it quite often for troubleshooting various issues with regard to Performance, Authentication, custom Module/handler/ISAPI filter issues in the pipeline etc.</p>
<p>For more details on how FREB works here is a good <a target="_blank" href="http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis-7/">link</a>.</p>
<p>However you may notice that based on the rule that you configure with FREB you may end up with lot many log files that are generated by the FREB module. It again depends upon the number of requests hitting your website and how many of them fall under one of the rules that you have configured. The pain starts when you navigate to the folder where you have all these log files. The default location is %systemdrive%\inetpub\logs\FailedReqLogFiles\. If you have lot of log files created you may see them listed as below:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/76/44/metablogapi/5850.image_1BAAD95C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-76-44-metablogapi/5850.image_5F00_1BAAD95C.png"><img height="223" width="360" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/76/44/metablogapi/5367.image_thumb_710EF87E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-76-44-metablogapi/5367.image_5F00_thumb_5F00_710EF87E.png" alt="image" border="0" title="image" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" /></a> </p>
<p>Looking at the above screenshot we know that the file names are not descriptive enough to help us distinguish which file corresponds to which request/property. It may be a little painful to go through all of them just to find the right one. Imagine 100+ files in the folder!</p>
<p>I have developed a simple application which asks you for the location where you have the FREB logs and then creates a copy of all the logs in a subfolder with more descriptive names. These names are actually based on the request properties associated with that log file like time-stamp, page name, verb, status code, time-taken etc.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/76/44/metablogapi/8507.image_2EBBE03B.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-76-44-metablogapi/8507.image_5F00_2EBBE03B.png"><img height="453" width="549" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/76/44/metablogapi/7345.image_thumb_197DB4C6.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-76-44-metablogapi/7345.image_5F00_thumb_5F00_197DB4C6.png" alt="image" border="0" title="image" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" /></a> </p>
<p>&nbsp;</p>
<p>After you run the tool it creates a subfolder named &ldquo;NewFREBLogs&rdquo; under the folder you selected above. It doesn&rsquo;t modify or delete the existing FREB logs anyway.</p>
<p>The new file names will be more descriptive as shown below. </p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/76/44/metablogapi/5466.image_7D204CD8.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-76-44-metablogapi/5466.image_5F00_7D204CD8.png"><img height="133" width="817" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/76/44/metablogapi/0676.image_thumb_32695F3E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-76-44-metablogapi/0676.image_5F00_thumb_5F00_32695F3E.png" alt="image" border="0" title="image" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" /></a> </p>
<p>&nbsp;</p>
<p>Hope this saves some time while rummaging through all the logs.</p>
<p>You can download it from the following link </p>
<p><a href="http://www.iis.net/community/default.aspx?tabid=34&amp;g=6&amp;i=2011" title="http://www.iis.net/community/default.aspx?tabid=34&amp;g=6&amp;i=2011">http://www.iis.net/community/default.aspx?tabid=34&amp;g=6&amp;i=2011</a></p>
<p>Till next time&hellip;<span style="font-family: curlz mt">Cheers to life</span>!</p>]]></content:encoded>
    </item>
    <item>
      <title>Internet Explorer 6 may fail to open an SSL Web site after installing MS10-049</title>
      <link>https://docs.microsoft.com/archive/blogs/saurabh_singh/internet-explorer-6-may-fail-to-open-an-ssl-web-site-after-installing-ms10-049</link>
      <pubDate>Tue, 07 Sep 2010 09:25:34 GMT</pubDate>
      <dc:creator><![CDATA[Saur212]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/saurabh_singh/2010/09/07/internet-explorer-6-may-fail-to-open-an-ssl-web-site-after-installing-ms10-049/</guid>
      <description><![CDATA[You may see this behaviour when accessing an SSL enabled Website through IE 6.0 after installing...]]></description>
      <content:encoded><![CDATA[<p>You may see this behaviour when accessing an SSL enabled Website through IE 6.0 after installing MS10-049.</p>  <p>“The Page cannot be displayed”</p>  <p>This can happen for websites that use TLS security protocol for encryption.</p>  <p>If you are experiencing this behaviour please check the following support KB for more information.</p>  <p><a title="http://support.microsoft.com/kb/2384778" href="http://support.microsoft.com/kb/2384778">http://support.microsoft.com/kb/2384778</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Failing to run ADSI scripts remotely against IIS?</title>
      <link>https://docs.microsoft.com/archive/blogs/saurabh_singh/failing-to-run-adsi-scripts-remotely-against-iis</link>
      <pubDate>Wed, 18 Aug 2010 14:38:26 GMT</pubDate>
      <dc:creator><![CDATA[Saur212]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/saurabh_singh/2010/08/18/failing-to-run-adsi-scripts-remotely-against-iis/</guid>
      <description><![CDATA[If you are trying to run an ADSI/WMI Script remotely from a client machine which gets information...]]></description>
      <content:encoded><![CDATA[<p>If you are trying to run an ADSI/WMI Script remotely from a client machine which gets information the from IIS web server around websites etc. you may see this:</p>  <p>“<strong>Invalid syntax</strong>” or error code <strong>800401E4</strong></p>  <p>Or </p>  <p><strong>Microsoft VBScript runtime error: The remote server machine does not exist or is unavailable: 'GetObject'</strong></p>  <p>In my script I was using the following </p>  <p>GetObject( &quot;IIS://&quot; &amp; ServerName &amp; &quot;/W3SVC&quot; )</p>  <p>So basically the above error was complaining about the use of GetObject. </p>  <p><u>Resolution</u></p>  <p>1. Ensure Firewall is not blocking access to your server from remote access on the client.</p>  <p>2. ADSI provider should be installed on the <em>client as well as the IIS machine</em> for the above script to work. For running ADSI script against IIS we need to ensure the ADSI provider is installed as below.</p>  <p><em>Windows Server 2003/XP:</em> </p>  <p>Add/Remove windows Components –&gt; Application Server –&gt; Internet Information services (IIS) –&gt; Common Files.</p>  <p><em>Windows Vista/Windows 7:</em></p>  <p>Control Panel –&gt; Programs and Features –&gt; Turn Windows Features on or off –&gt;&#160; Internet Information Services –&gt; Web Management tools –&gt; IIS 6 Management Compatibility –&gt; IIS Metabase and IIS 6 configuration compatibility</p>  <p><em>Windows Server 2008:</em></p>  <p>Server Manager –&gt; Roles –&gt; web Server (IIS) –&gt; Add Role Services&#160; –&gt; Management Tools –&gt; IIS 6 Management Compatibility –&gt; Select IIS 6 Metabase compatibility, IIS 6 WMI compatibility and IIS 6 Scripting Tools.</p>  <p>Hoping It may help someone who might be struggling with trying to run the script remotely. </p>  <p>Ciao!</p>]]></content:encoded>
    </item>
    <item>
      <title>Debug.Assert does not launch a popup window on IIS7 while debugging in Visual Studio</title>
      <link>https://docs.microsoft.com/archive/blogs/saurabh_singh/debug-assert-does-not-launch-a-popup-window-on-iis7-while-debugging-in-visual-studio</link>
      <pubDate>Thu, 24 Jun 2010 16:19:45 GMT</pubDate>
      <dc:creator><![CDATA[Saur212]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/saurabh_singh/2010/06/24/debug-assert-does-not-launch-a-popup-window-on-iis7-while-debugging-in-visual-studio/</guid>
      <description><![CDATA[If you are trying to debug an IIS 7 hosted web application using Visual Studio and trying to use...]]></description>
      <content:encoded><![CDATA[<p>If you are trying to debug an IIS 7 hosted web application using Visual Studio and trying to use <em>System.Diagnostics.Debug.Assert()/System.Diagnostics.Trace.Assert()</em> in your code to launch a popup window it will not work. However you can write the output to a log file using the following:</p>  <p></p>  <pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #0000ff">&lt;</span><span style="color: #800000">configuration</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">  <span style="color: #0000ff">&lt;</span><span style="color: #800000">system.diagnostics</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">assert</span> <span style="color: #ff0000">assertuienabled</span>=<span style="color: #0000ff">&quot;true&quot;</span> <span style="color: #ff0000">logfilename</span>=<span style="color: #0000ff">&quot;c:\\myFile.log&quot;</span> <span style="color: #0000ff">/&gt;</span>
</pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">  <span style="color: #0000ff">&lt;/</span><span style="color: #800000">system.diagnostics</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">configuration</span><span style="color: #0000ff">&gt;</span></pre></pre>

<p>You can also get the output of Debug.Assert (..) in the Output window within Visual Studio. It will also be logged in the System event log. However, this seems to work with the earlier version of IIS, i.e. IIS 6.0 in the console session.</p>

<p>After going through various forums I see that developers do complain about this being a deprecated feature in IIS 7+ versions which hampers debugging.</p>

<p>However In my opinion it should *never* have worked in the first place for any service based application. ASP.Net application runs as a service on the server side and it should never launch an interactive window which might lead to the process getting into a hung state for all the clients. Lot of times developers miss deleting one of these entries from their code before moving it to the production environment and that leads to hang/frozen condition for the application for all the end users. This is not specific to IIS or ASP.Net in my opinion but manifestation of a feature from Vista onwards at the OS level. Session 0 isolation in Vista onwards prevents services from interacting with user sessions in the way it was possible in the previous versions of Windows like Windows Server 2003.</p>

<p><a title="http://www.microsoft.com/whdc/system/sysinternals/Session0Changes.mspx" href="http://www.microsoft.com/whdc/system/sysinternals/Session0Changes.mspx">http://www.microsoft.com/whdc/system/sysinternals/Session0Changes.mspx</a></p>

<p><a title="https://channel9.msdn.com/posts/Charles/Session-0-Changes-and-Vista-Compatibility-for-Services-running-as-Interactive-with-Desktop/" href="https://channel9.msdn.com/posts/Charles/Session-0-Changes-and-Vista-Compatibility-for-Services-running-as-Interactive-with-Desktop/">https://channel9.msdn.com/posts/Charles/Session-0-Changes-and-Vista-Compatibility-for-Services-running-as-Interactive-with-Desktop/</a></p>

<p><strong>Important</strong>&#160; All services run in Terminal Services session 0 from Vista onwards. Therefore, if an interactive service displays a user interface, it is visible only to the user who is connected to session 0. Applications running in other sessions cannot access Session 0 GUIs. Because there is no way to guarantee that the interactive user is connected to session 0, do not configure a service to run as an interactive service under Terminal Services or on a system that supports fast user switching.</p>

<p>HTH</p>

<p><font size="6" face="Freestyle Script">Saurabh</font></p>]]></content:encoded>
    </item>
    <item>
      <title>Microsoft Professional Advisory Services</title>
      <link>https://docs.microsoft.com/archive/blogs/saurabh_singh/microsoft-professional-advisory-services</link>
      <pubDate>Wed, 23 Jun 2010 10:13:40 GMT</pubDate>
      <dc:creator><![CDATA[Saur212]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/saurabh_singh/2010/06/23/microsoft-professional-advisory-services/</guid>
      <description><![CDATA[As per the excerpt in the link below:  Professional Advisory Services is an hourly, fee-based,...]]></description>
      <content:encoded><![CDATA[<p>As per the excerpt in the link below:</p>  <p><b>Professional Advisory Services</b> is an hourly, fee-based, consultative support option that provides proactive support beyond break-fix product support needs. Typical Advisory Services cases involve providing recommendations or best practices to solve problems leveraging Microsoft Products and Technologies. These scenarios include topics such as migration, product customization, performance degradation analysis, deployment training, scaling infrastructure, server recovery, optimization, supportability, risk analysis, root cause analysis, extensibility, architecture, and knowledge transfer.</p>  <p>If you are a Developer/Administrator and looking for consulting/advisory services from Microsoft here is the link you can follow and see what all products/technologies are covered and other details.</p>  <p><a title="http://support.microsoft.com/gp/advisoryservice#tab7" href="http://support.microsoft.com/gp/advisoryservice#tab7">http://support.microsoft.com/gp/advisoryservice#tab7</a></p>  <p>HTH</p>  <p><font size="6" face="Freestyle Script"><em>Saurabh</em></font></p>]]></content:encoded>
    </item>
    <item>
      <title>You may see your IIS 6.0 applications failing to respond after you install Microsoft update KB 982666</title>
      <link>https://docs.microsoft.com/archive/blogs/saurabh_singh/you-may-see-your-iis-6-0-applications-failing-to-respond-after-you-install-microsoft-update-kb-982666</link>
      <pubDate>Mon, 14 Jun 2010 15:23:49 GMT</pubDate>
      <dc:creator><![CDATA[Saur212]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/saurabh_singh/2010/06/14/you-may-see-your-iis-6-0-applications-failing-to-respond-after-you-install-microsoft-update-kb-982666/</guid>
      <description><![CDATA[We are recently seeing lot many support cases coming our way. If you are seeing the following after...]]></description>
      <content:encoded><![CDATA[<p>We are recently seeing lot many support cases coming our way. If you are seeing the following after installing the Microsoft update KB 982666 on a Windows Server 2003 machine:</p>  <ul>   <li>IIS application pools or websites no longer starts. </li>    <li>IIS web-sites may not be able to start. </li>    <li>Rapid Fail Protection shuts down your application pools. </li>    <li>An inspection of the event logs show that the IIS worker processes are terminating unexpectedly, showing event messages similar to the following: </li> </ul>  <blockquote>   <p><b>Event Type: Warning        <br />Event Source: W3SVC         <br />Event Category: None         <br />Event ID: 1009         <br />Date:&#160; 12/9/2009         <br />Time:&#160; 10:55:01 AM         <br />User:&#160; N/A         <br />Computer: WEBSERVER01         <br />Description:         <br />A process serving application pool 'DefaultAppPool' terminated unexpectedly. The process id was '1234'.         <br />The process exit code was <font color="#ff0000">'0xffffffff'</font>. </b></p> </blockquote>  <p>Please go ahead and reapply Windows Server 2003 Service Pack 2 to resolve this issue.</p>  <p>For more details visit the following <a href="http://blogs.msdn.com/b/webtopics/archive/2010/06/14/iis-6-applications-may-stop-responding-after-you-install-microsoft-update-kb-982666.aspx" target="_blank">link</a>.</p>]]></content:encoded>
    </item>
  </channel>
</rss>