<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Rakki Muthukumar</title><link>http://blogs.msdn.com/rakkimk/default.aspx</link><description>my journey with microsoft technologies - IIS/ASP.NET/AJAX/C#
</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>IIS – Getting “Connection_Abandoned_By_AppPool DefaultAppPool” – File Version Mismatch</title><link>http://blogs.msdn.com/rakkimk/archive/2009/08/07/iis-getting-connection-abandoned-by-apppool-defaultapppool-file-version-mismatch.aspx</link><pubDate>Fri, 07 Aug 2009 23:22:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9860622</guid><dc:creator>rakkim</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/rakkimk/comments/9860622.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rakkimk/commentrss.aspx?PostID=9860622</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rakkimk/rsscomments.aspx?PostID=9860622</wfw:comment><description>&lt;p&gt;Today, I was working with a customer of mine who had some problems in configuring a Virus Definitions Distribution Point for Symantec Live Update on IIS. Another module hosted on a different web-server has a button to test this distribution point, and we were seeing that the test on this Distribution Point was failing. &lt;/p&gt;  &lt;p&gt;I’m no Symantec expert, and couldn’t understand what that test all about and what it was trying to do. Only after checking the IIS log file, we came to know that this test was trying to PUT some files to the server, and was not successful. Saw the below events in the HTTPERR log:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;2009-08-07 18:54:36 &amp;lt;ip&amp;gt; 444 HTTP/1.1 PUT /virusdefs/minitri.flg - 783927 Connection_Abandoned_By_AppPool DefaultAppPool     &lt;br /&gt;2009-08-07 18:54:36 &amp;lt;ip&amp;gt; 444 HTTP/1.1 PUT /virusdefs/minitri.flg - 783927 Connection_Abandoned_By_AppPool DefaultAppPool&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I know that we would get “Connection_Abandoned_By_AppPool DefaultAppPool” when the request was actually orphaned, or the application pool crashes. Check this &lt;a href="http://support.microsoft.com/kb/820729"&gt;KB&lt;/a&gt; for the explanations on each message you would see in HTTPERR logs. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Connection_Abandoned_By_AppPool&lt;/strong&gt;&lt;em&gt; - A worker process from the application pool has quit unexpectedly or orphaned a pending request by closing its handle.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;But, we were sure that the worker process was not crashing, no event logs as such – as well as the PID of the w3wp.exe not changing. I just checked the file versions in the inetsrv folder, bingo! They were of older version than the SP version installed on the server. Probably the customer during the installation of IIS provided a Windows 2003 Server RTM CD instead of the one contains SP2 slip streamed. After re-applying the SP2 for Windows 2003 Server, issue was resolved. Take a look at this &lt;a href="http://support.microsoft.com/kb/907275"&gt;KB&lt;/a&gt; for more on this. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Take Away from this blog post:&lt;/strong&gt; Mind to check the file versions, if you see a Connection_Abandoned_By_AppPool DefaultAppPool on the HTTPERR logs, and no event logs indicating a worker process crash. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9860622" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rakkimk/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/rakkimk/archive/tags/HTTPERR/default.aspx">HTTPERR</category></item><item><title>IIS7 – Configure FREB rule to collect a dump</title><link>http://blogs.msdn.com/rakkimk/archive/2009/08/04/iis7-configure-freb-rule-to-collect-a-dump.aspx</link><pubDate>Tue, 04 Aug 2009 20:51:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9857304</guid><dc:creator>rakkim</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/rakkimk/comments/9857304.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rakkimk/commentrss.aspx?PostID=9857304</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rakkimk/rsscomments.aspx?PostID=9857304</wfw:comment><description>&lt;p&gt;I wrote a &lt;a href="http://blogs.msdn.com/webtopics/archive/2009/08/04/iis7-and-above-using-freb-to-capture-dumps-for-a-long-running-request.aspx"&gt;post&lt;/a&gt; of my team blog where I explained how to configure FREB rule to collect dump when there is a slow running request (say request take more than 15 seconds to complete). &lt;/p&gt;  &lt;p&gt;Read the complete post &lt;a href="http://blogs.msdn.com/webtopics/archive/2009/08/04/iis7-and-above-using-freb-to-capture-dumps-for-a-long-running-request.aspx"&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Happy FREBing!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9857304" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rakkimk/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.msdn.com/rakkimk/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.msdn.com/rakkimk/archive/tags/FREB/default.aspx">FREB</category></item><item><title>IIS7 – To be noted while using Expression Encoder to upload large files to IIS server</title><link>http://blogs.msdn.com/rakkimk/archive/2009/07/30/iis7-to-be-noted-while-using-expression-encoder-to-upload-large-files-to-iis-server.aspx</link><pubDate>Thu, 30 Jul 2009 02:06:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9852648</guid><dc:creator>rakkim</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/rakkimk/comments/9852648.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rakkimk/commentrss.aspx?PostID=9852648</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rakkimk/rsscomments.aspx?PostID=9852648</wfw:comment><description>&lt;p&gt;Internet is full of videos, and you have a power packed set of tools for IIS to make media streaming top-notch experience. You have &lt;a href="http://www.iis.net/media"&gt;IIS Media Pack&lt;/a&gt; enabling intelligent progressive downloads, smooth streaming, throttling, etc. You have tools from Microsoft such as Expression Encoder which helps building rich videos. Expression Encoder also gives you an option to upload the videos from the tool itself directly to the web server. &lt;/p&gt;  &lt;p&gt;I was working with one of my customer who was trying to upload a large file to the web server from his Expression Encoder, and failing with 404. While checking the IIS logs, found that it was really a 404.13 which says the content length is too large. &lt;/p&gt;  &lt;p&gt;You should follow &lt;a href="http://support.microsoft.com/kb/942074/"&gt;this KB&lt;/a&gt; to increase the maxAllowedContentLength to be able to satisfy the size of the file you are trying to upload. By default, it is just 28.6 MB. So, if you are uploading any file greater than 28.6 MB, it will fail. &lt;/p&gt;  &lt;p&gt;This applies for any file you might try to upload, for example using the ASP.NET File Upload control. Thought I would just make this quick post for those who use Videos heavily, and upload them from the Video Editing tool (such as Expression Encoder) to the web server directly. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9852648" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rakkimk/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.msdn.com/rakkimk/archive/tags/Media/default.aspx">Media</category></item><item><title>IIS7 – Improving ASP.NET performance (concurrent requests) while on Integrated Mode</title><link>http://blogs.msdn.com/rakkimk/archive/2009/07/08/iis7-improving-asp-net-performance-concurrent-requests-while-on-integrated-mode.aspx</link><pubDate>Wed, 08 Jul 2009 20:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9824445</guid><dc:creator>rakkim</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/rakkimk/comments/9824445.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rakkimk/commentrss.aspx?PostID=9824445</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rakkimk/rsscomments.aspx?PostID=9824445</wfw:comment><description>&lt;P mce_keep="true"&gt;If you were a ASP.NET 1.1 developer, and faced some performance problems, I’m sure you would have come across the &lt;A href="http://support.microsoft.com/default.aspx?scid=kb;en-us;821268" mce_href="http://support.microsoft.com/default.aspx?scid=kb;en-us;821268"&gt;KB 821268&lt;/A&gt; which talks about tweaking maxWorkerThreads, maxIoThreads in the &amp;lt;processModel&amp;gt;, minFreeThreads, minLocalRequestFreeThreads in &amp;lt;httpRuntime&amp;gt;, maxconnection in the &amp;lt;connectionManagement&amp;gt; section. But for ASP.NET 2.0, we have &amp;lt;processModel autoConfig=”true” /&amp;gt; where these settings are tweaked in the runtime. &lt;/P&gt;
&lt;P&gt;You may experience a performance issue while running your ASP.NET applications on IIS7 integrated mode. You might want to consider tweaking the number of concurrent requests per CPU on the server which can slow down the execution of the requests, and you will see few requests just waiting to be processed. By default, it sets a limit of 12 concurrent requests, and you can tweak the number by considering the below options registry key, or a equivalent configuration change if you have .NET 3.5 SP1:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;[DWORD]&lt;/P&gt;
&lt;P&gt;&lt;FONT color=green&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\2.0.50727\MaxConcurrentRequestsPerCPU&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Set this to a value higher than 12 (12 is the default)&lt;/P&gt;
&lt;P&gt;If you already have SP1 for .NET 3.5 installed, this can be done via configuration itself:&lt;/P&gt;
&lt;P&gt;Change the below in aspnet.config file (found in the framework folder)&lt;/P&gt;
&lt;P&gt;&lt;FONT color=green&gt;&amp;lt;system.web&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;applicationPool maxConcurrentRequestsPerCPU="12" maxConcurrentThreadsPerCPU="0" requestQueueLimit="5000"/&amp;gt; &lt;BR&gt;&amp;lt;/system.web&amp;gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/tmarq" mce_href="http://blogs.msdn.com/tmarq"&gt;Thomas Marquart&lt;/A&gt; has explained about the changes in the IIS7 thread handling (integrated mode) in his &lt;A href="http://blogs.msdn.com/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx" mce_href="http://blogs.msdn.com/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx"&gt;blog&lt;/A&gt;. That’s a well written blog explaining how the ASP.NET threading model in IIS6/IIS7 handles the requests. Please read!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9824445" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rakkimk/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.msdn.com/rakkimk/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/rakkimk/archive/tags/Performance/default.aspx">Performance</category></item><item><title>IIS7 – Configuring iisClientCertificateMappingAuthentication using appcmd</title><link>http://blogs.msdn.com/rakkimk/archive/2009/07/08/iis7-configuring-iisclientcertificatemappingauthentication.aspx</link><pubDate>Wed, 08 Jul 2009 17:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9823975</guid><dc:creator>rakkim</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/rakkimk/comments/9823975.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rakkimk/commentrss.aspx?PostID=9823975</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rakkimk/rsscomments.aspx?PostID=9823975</wfw:comment><description>&lt;P&gt;As you know there is no UI to configure iisClientCertificateMappingAuthentication in IIS7, it takes a little more time to configure the site for the same. &lt;A href="http://learn.iis.net/page.aspx/478/configuring-one-to-one-client-certificate-mappings/" mce_href="http://learn.iis.net/page.aspx/478/configuring-one-to-one-client-certificate-mappings/"&gt;Here&lt;/A&gt; is an article in the iis.net site which explains the steps one by one. &lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;STRONG&gt;Configuring One-to-One Client Certificate Mappings&lt;BR&gt;&lt;/STRONG&gt;&lt;A title=http://learn.iis.net/page.aspx/478/configuring-one-to-one-client-certificate-mappings/ href="http://learn.iis.net/page.aspx/478/configuring-one-to-one-client-certificate-mappings/" mce_href="http://learn.iis.net/page.aspx/478/configuring-one-to-one-client-certificate-mappings/"&gt;http://learn.iis.net/page.aspx/478/configuring-one-to-one-client-certificate-mappings/&lt;/A&gt; &lt;/BLOCKQUOTE&gt;
&lt;P&gt;You can also use &lt;A href="http://blogs.iis.net/ulad/archive/2007/01/19/vbscript-to-configure-one-to-one-client-certificate-mapping-on-iis7.aspx" mce_href="http://blogs.iis.net/ulad/archive/2007/01/19/vbscript-to-configure-one-to-one-client-certificate-mapping-on-iis7.aspx"&gt;Ulad’s VBScript&lt;/A&gt; to configure the mapping of the certificate, and the user credentials. I was working with one of my colleague who was trying to automate this configuration. One interesting thing to note here is these one-to-one certificate configurations MUST be present in the website level. So, if you want only your virtual directory to be using this iisClientCertificateMappingAuthentication, you need to specify the certificate-useraccount mapping configurations on the website level, and set the iisClientCertificateMappingAuthentication not enabled. And, just enable the iisClientCertificateMappingAuthentication only on the virtual directory (or application) level. &lt;/P&gt;
&lt;P&gt;Below are the appcmd commands needed for the same (after configuring the one-to-one configuration using Ulad’s VBScript): &lt;/P&gt;&lt;FONT size=1&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;In this example, we will configure the IIS client certificate authentication only on the Virtual Directory level:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;// disable the IIS client certificate authentication at the website level (our website is “Default Web Site”, and Vdir is “Myapplication”)&lt;/P&gt;
&lt;P&gt;appcmd.exe set config "Default Web Site" -section:system.webServer/security/authentication/iisClientCertificateMappingAuthentication /enabled:false /commit:appHost&lt;/P&gt;
&lt;P&gt;// disable anonymous authentication on the virtual directory&lt;/P&gt;
&lt;P&gt;appcmd.exe set config "Default Web Site/Myapplication" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:false /commit:appHost&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;// disable windows authentication on the virtual directory&lt;/P&gt;
&lt;P&gt;appcmd.exe set config “Default Web Site/Myapplication" -section:system.webServer/security/authentication/windowsAuthentication /enabled:false /commit:appHost &lt;/P&gt;
&lt;P&gt;// enable iisClientCertificateMappingAuthentication, and oneToOneCertificateMappingsEnabled for the virtual directory&lt;/P&gt;
&lt;P&gt;appcmd.exe set config "Default Web Site/Myapplication" -section:system.webServer/security/authentication/iisClientCertificateMappingAuthentication /enabled:true /oneToOneCertificateMappingsEnabled:true /commit:appHost&lt;/P&gt;
&lt;P&gt;// set the SSL flags to require Client Certificates from the client connections&lt;/P&gt;
&lt;P&gt;appcmd.exe set config "Default Web Site/Myapplication" -section:system.webServer/security/access /sslFlags:"Ssl, SslNegotiateCert, SslRequireCert"&amp;nbsp; /commit:apphost&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;
&lt;P&gt;Hope this helps!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9823975" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rakkimk/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.msdn.com/rakkimk/archive/tags/IIS7+_3A00_+HOW+TO/default.aspx">IIS7 : HOW TO</category></item><item><title>FREB – Troubleshooting a simple error message</title><link>http://blogs.msdn.com/rakkimk/archive/2009/06/12/freb-troubleshooting-a-simple-error-message.aspx</link><pubDate>Sat, 13 Jun 2009 01:16:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9739855</guid><dc:creator>rakkim</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/rakkimk/comments/9739855.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rakkimk/commentrss.aspx?PostID=9739855</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rakkimk/rsscomments.aspx?PostID=9739855</wfw:comment><description>&lt;p&gt;I just wrote a blog post on my team &lt;a href="http://blogs.msdn.com/webtopics"&gt;blog&lt;/a&gt; on using FREB to troubleshoot a simple error message. I’ve taken an example of a HttpModule setting the Response status to 400. This is not a common scenario, but I just want people to use FREB extensively in their troubleshooting an error message – to see which module set the status, and take it from there. &lt;/p&gt;  &lt;p&gt;Read the post here - &lt;a title="http://blogs.msdn.com/webtopics/archive/2009/06/12/troubleshooting-a-simple-error-message-using-freb.aspx" href="http://blogs.msdn.com/webtopics/archive/2009/06/12/troubleshooting-a-simple-error-message-using-freb.aspx"&gt;http://blogs.msdn.com/webtopics/archive/2009/06/12/troubleshooting-a-simple-error-message-using-freb.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And, please do subscribe to my team blog &lt;a href="http://blogs.msdn.com/webtopics/rss.xml"&gt;RSS feed&lt;/a&gt; where we have bunch of folks blogging on issues which are most common to our customers, best practices, known issues, and workarounds, etc. That’s our official team &lt;a href="http://blogs.msdn.com/webtopics"&gt;blog&lt;/a&gt; of Microsoft IIS and ASP.NET support team. &lt;/p&gt;  &lt;p&gt;Hope this helps! &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9739855" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rakkimk/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.msdn.com/rakkimk/archive/tags/FREB/default.aspx">FREB</category></item><item><title>URLScan – rejecting the request depending on the User-Agent string</title><link>http://blogs.msdn.com/rakkimk/archive/2009/06/12/urlscan-rejecting-the-request-depending-on-the-user-agent-string.aspx</link><pubDate>Fri, 12 Jun 2009 23:13:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9738515</guid><dc:creator>rakkim</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/rakkimk/comments/9738515.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rakkimk/commentrss.aspx?PostID=9738515</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rakkimk/rsscomments.aspx?PostID=9738515</wfw:comment><description>&lt;p&gt;I just learned this now :-) You can now use the &lt;a href="http://www.iis.net/extensions/UrlScan"&gt;URLScan 3.1&lt;/a&gt; with your own custom rules, and it would come handy in situations like rejecting a request based on the User-Agent string.&lt;/p&gt;  &lt;p&gt;Below is a sample rule for the same:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;[Options]&lt;/p&gt;    &lt;p&gt;RuleList=DenyUserAgent&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;[DenyUserAgent]&lt;/p&gt;    &lt;p&gt;DenyDataSection=Agent Strings&lt;/p&gt;    &lt;p&gt;ScanHeaders=User-Agent&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;[Agent Strings]&lt;/p&gt;    &lt;p&gt;My Custom User-Agent String &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Useful links&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a title="http://learn.iis.net/page.aspx/476/common-urlscan-scenarios/" href="http://learn.iis.net/page.aspx/476/common-urlscan-scenarios/"&gt;http://learn.iis.net/page.aspx/476/common-urlscan-scenarios/&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a title="http://blogs.iis.net/nazim/archive/2008/06/30/urlscan-v3-0-filtering-based-on-request-entity.aspx" href="http://blogs.iis.net/nazim/archive/2008/06/30/urlscan-v3-0-filtering-based-on-request-entity.aspx"&gt;http://blogs.iis.net/nazim/archive/2008/06/30/urlscan-v3-0-filtering-based-on-request-entity.aspx&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a title="http://learn.iis.net/page.aspx/473/using-urlscan?info=EXLINK" href="http://learn.iis.net/page.aspx/473/using-urlscan?info=EXLINK"&gt;http://learn.iis.net/page.aspx/473/using-urlscan?info=EXLINK&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Hope this helps! &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9738515" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rakkimk/archive/tags/URLScan/default.aspx">URLScan</category></item><item><title>IIS7 – Improved Backup Restore Tool, and a UI Module</title><link>http://blogs.msdn.com/rakkimk/archive/2009/06/08/iis7-improved-backup-restore-tool-and-a-ui-module.aspx</link><pubDate>Mon, 08 Jun 2009 18:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9708301</guid><dc:creator>rakkim</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/rakkimk/comments/9708301.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rakkimk/commentrss.aspx?PostID=9708301</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rakkimk/rsscomments.aspx?PostID=9708301</wfw:comment><description>&lt;P align=justify&gt;&lt;EM&gt;NOTE : Before you even read about this module, I want to mention that I do not work for IIS product team at Microsoft, but in Product Support for IIS and ASP.NET. This module/application is purely out of my interest, and this is not an official release by Microsoft and hence NOT supported by Microsoft Services. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;When I wrote my &lt;A href="http://blogs.msdn.com/rakkimk/archive/2007/11/04/iis7-backup-restore-ui-module.aspx" mce_href="http://blogs.msdn.com/rakkimk/archive/2007/11/04/iis7-backup-restore-ui-module.aspx"&gt;BackupRestore&lt;/A&gt; module UI module a while back, many people asked for few modifications, with the ability to take a complete backup of all the IIS configurations – because some of the IIS configurations can now lie within the individual web.configs of the applications. I was just waiting for some free time to do this. Since many of the users of this module have requested this feature for a while now, and I thought I would give a shot (and I wrote this while on vacation – that’s another story). &lt;/P&gt;
&lt;P&gt;This is how it looks right now, and I’ve compiled a separate Windows Forms application as well – so if you do not want to put this module inside your IIS manager, you can use the Windows Forms Application version. &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp; &lt;A href="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/IIS7ImprovedBackupRestoreToolandaUIModul_12415/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/IIS7ImprovedBackupRestoreToolandaUIModul_12415/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/IIS7ImprovedBackupRestoreToolandaUIModul_12415/image_thumb.png" width=444 height=220 mce_src="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/IIS7ImprovedBackupRestoreToolandaUIModul_12415/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Now, I’ve a checkbox which is selected by default which says the tool to collect the individual web.configs of the applications too. It generates the below files / folders inside the backup directory:&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;filelist.xml &lt;/LI&gt;
&lt;LI&gt;webconfigfiles &amp;lt;folder&amp;gt; &lt;/LI&gt;
&lt;LI&gt;other main config files and folders &lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;So, the 1st 2 entries are the only difference between the backups taken using my previous module or APPCMD. filelist.xml is a file where I store all my backup files path (eg: path to the web.config of the website1), and it’s corresponding file in the &amp;lt;webconfigfiles&amp;gt; folder. This folder contains files in the name of 1.config, 2.config, etc which are the real web.config files of the applications. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Download Location&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A href="http://cid-d51bd0fea1143bbd.skydrive.live.com/self.aspx/MSDNBlogAttachments/iBackupIIS7/IIS7BackupRestoreUI.zip" mce_href="http://cid-d51bd0fea1143bbd.skydrive.live.com/self.aspx/MSDNBlogAttachments/iBackupIIS7/IIS7BackupRestoreUI.zip"&gt;IIS7 (7.5) manager UI module&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A href="http://cid-d51bd0fea1143bbd.skydrive.live.com/self.aspx/MSDNBlogAttachments/iBackupIIS7/iBackupIIS7.zip" mce_href="http://cid-d51bd0fea1143bbd.skydrive.live.com/self.aspx/MSDNBlogAttachments/iBackupIIS7/iBackupIIS7.zip"&gt;Windows Forms Application (stand alone EXE) (run with elevated permissions)&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;To use the IIS7 manager UI module, please follow the instructions in my &lt;A href="http://blogs.msdn.com/rakkimk/archive/2007/11/04/iis7-backup-restore-ui-module.aspx" mce_href="http://blogs.msdn.com/rakkimk/archive/2007/11/04/iis7-backup-restore-ui-module.aspx"&gt;older blog&lt;/A&gt;, but with the new &lt;A href="http://x1rcka.bay.livefilestore.com/y1py7hFS_YjDCT2GVJsRNzwicx3dnz0_42-x3ZBb5NLusYAKKX4EGtNVKoFUIUO1_wCT6ia46n58Br9fRTCljNUWV014ZPOb2qL/IIS7BackupRestoreUI.dll" mce_href="http://x1rcka.bay.livefilestore.com/y1py7hFS_YjDCT2GVJsRNzwicx3dnz0_42-x3ZBb5NLusYAKKX4EGtNVKoFUIUO1_wCT6ia46n58Br9fRTCljNUWV014ZPOb2qL/IIS7BackupRestoreUI.dll"&gt;DLL&lt;/A&gt;. I will soon add it to the iis.net/downloads under my user ID. If you have suggestions to improve this tool, please do leave a comment. &lt;/P&gt;
&lt;P&gt;So, go ahead and grab the tool, and use it. Happy Backup-Restoring!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9708301" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rakkimk/archive/tags/IIS7/default.aspx">IIS7</category></item><item><title>IIS7 - Getting HTTP 500.19 while accessing the website</title><link>http://blogs.msdn.com/rakkimk/archive/2009/03/19/iis7-getting-http-500-19-while-accessing-the-website.aspx</link><pubDate>Thu, 19 Mar 2009 21:01:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9490701</guid><dc:creator>rakkim</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/rakkimk/comments/9490701.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rakkimk/commentrss.aspx?PostID=9490701</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rakkimk/rsscomments.aspx?PostID=9490701</wfw:comment><description>&lt;p&gt;I recently worked with one of my customer who was getting “HTTP 500.19” error while browsing the website. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Server Error in Application &amp;quot;&lt;var&gt;application name&lt;/var&gt;&amp;quot;       &lt;br /&gt;HTTP Error 500.19 – Internal Server Error       &lt;br /&gt;HRESULT: 0x8007000d       &lt;br /&gt;Description of HRESULT       &lt;br /&gt;The requested page cannot be accessed because the related configuration data for the page is invalid.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Err tool showed “STIERR_INVALID_HW_TYPE” for 0x8007000d error code. &lt;/p&gt;  &lt;p&gt;With further troubleshooting found that he had a virtual directory configured for a UNC share, and had a wrong password mentioned. Entered the proper credentials, and the problem went away. &lt;/p&gt;  &lt;p&gt;This error message is a generic error message which would occur when the site configuration data present in the applicationHost.config has a malformed entry, or not a valid data (in our case it was the wrong password for the UNC connection, and the IIS cannot read its web.config file to check if there is any system.webserver setting mentioned)&lt;/p&gt;  &lt;p&gt;Related KB : &lt;a title="http://support.microsoft.com/kb/942055" href="http://support.microsoft.com/kb/942055"&gt;http://support.microsoft.com/kb/942055&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9490701" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rakkimk/archive/tags/IIS7/default.aspx">IIS7</category></item><item><title>IIS7 Tweet #2: Modifying an existing binding for the website</title><link>http://blogs.msdn.com/rakkimk/archive/2009/03/18/iis7-tweet-2-modifying-an-existing-binding-for-the-website.aspx</link><pubDate>Wed, 18 Mar 2009 02:22:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9485118</guid><dc:creator>rakkim</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/rakkimk/comments/9485118.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rakkimk/commentrss.aspx?PostID=9485118</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rakkimk/rsscomments.aspx?PostID=9485118</wfw:comment><description>&lt;p&gt;appcmd.exe set config&amp;#160; -section:system.applicationHost/sites /[name='Default Web Site'].bindings.[protocol='http',bindingInformation='*:80:'].bindingInformation:&amp;quot;*:80:www.test.com&amp;quot;&amp;#160; /commit:apphost&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9485118" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rakkimk/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.msdn.com/rakkimk/archive/tags/IIS7+Tweets/default.aspx">IIS7 Tweets</category></item><item><title>IIS7 Tweet #1 : Setting UploadReadAheadSize</title><link>http://blogs.msdn.com/rakkimk/archive/2009/03/17/iis7-tweet-1-setting-uploadreadaheadsize.aspx</link><pubDate>Tue, 17 Mar 2009 18:14:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9483874</guid><dc:creator>rakkim</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/rakkimk/comments/9483874.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rakkimk/commentrss.aspx?PostID=9483874</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rakkimk/rsscomments.aspx?PostID=9483874</wfw:comment><description>&lt;p&gt;appcmd.exe set config&amp;#160; -section:system.webServer/serverRuntime /uploadReadAheadSize:&amp;quot;491521&amp;quot;&amp;#160; /commit:apphost&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9483874" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rakkimk/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.msdn.com/rakkimk/archive/tags/IIS7+Tweets/default.aspx">IIS7 Tweets</category></item><item><title>Problems with rendering the "Design" View for a simple asp.net website from Visual Studio 2008</title><link>http://blogs.msdn.com/rakkimk/archive/2009/03/09/problems-with-rendering-the-design-view-for-a-simple-asp-net-website-from-visual-studio-2008.aspx</link><pubDate>Mon, 09 Mar 2009 22:35:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9468121</guid><dc:creator>rakkim</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/rakkimk/comments/9468121.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rakkimk/commentrss.aspx?PostID=9468121</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rakkimk/rsscomments.aspx?PostID=9468121</wfw:comment><description>&lt;p&gt;I recently worked with one of my customer who when clicking on the &amp;quot;Design&amp;quot; view of an ASPX page, the designer window doesn't appear - blank page appears. And if you minimize the VS window, and maximize it again - we will see the desktop background in the place of the Designer surface. &lt;/p&gt;  &lt;p&gt;Verified that neither the &amp;quot;Microsoft Visual Studio Web Authoring Component&amp;quot; nor &amp;quot;Microsoft Web Designer tools&amp;quot; was installed on the machine (Control panel --&amp;gt; Add/Remove window components). &lt;/p&gt;  &lt;p&gt;Ran the file [Path to the Installation DVD]\WCU\WebDesignerCore\WebDesignerCore.EXE &lt;/p&gt;  &lt;p&gt;NOTE&amp;#160; :&amp;#160; This exe doesn't have a UI, so watch the Task Manager to know when this exe completes its installation. &lt;/p&gt;  &lt;p&gt;Reference : &lt;a href="http://forums.asp.net/t/1167590.aspx"&gt;http://forums.asp.net/t/1167590.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Keywords : Visual Studio 2008 blank Design View hang&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9468121" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rakkimk/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/rakkimk/archive/tags/Web/default.aspx">Web</category><category domain="http://blogs.msdn.com/rakkimk/archive/tags/VS+2008/default.aspx">VS 2008</category></item><item><title>ASP.NET - AJAX functionality not working on the page | Getting ‘Sys’ is undefined</title><link>http://blogs.msdn.com/rakkimk/archive/2009/02/26/asp-net-ajax-functionality-not-working-on-the-page-getting-sys-is-undefined.aspx</link><pubDate>Fri, 27 Feb 2009 00:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9447470</guid><dc:creator>rakkim</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/rakkimk/comments/9447470.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rakkimk/commentrss.aspx?PostID=9447470</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rakkimk/rsscomments.aspx?PostID=9447470</wfw:comment><description>&lt;p&gt;When the ASP.NET AJAX Functionality is not working on a web page, it is usually due to the fact that the javascript needed for AJAX is not sent to the client from the server for some reason. &lt;/p&gt;  &lt;p&gt;‘Sys’ is undefined. You might see this error message when there is a problem with the client in receiving the javascript sent by the server for the AJAX functionality. Some browser might not show an alert of this error message, and you might see the status bar saying done, but in yellow. Yellow always indicates that you have an error occurred while the page was getting loaded. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/AJAXGettingSysisundefined_2B94/clip_image002_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/AJAXGettingSysisundefined_2B94/clip_image002_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/AJAXGettingSysisundefined_2B94/clip_image002_thumb.jpg" width="209" height="27" mce_src="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/AJAXGettingSysisundefined_2B94/clip_image002_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;And, when you double click on the status bar, you will see the below window depending on the version of IE you are running:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/AJAXGettingSysisundefined_2B94/clip_image004_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/AJAXGettingSysisundefined_2B94/clip_image004_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/AJAXGettingSysisundefined_2B94/clip_image004_thumb.jpg" width="297" height="256" mce_src="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/AJAXGettingSysisundefined_2B94/clip_image004_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Internet Explorer 8&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/AJAXGettingSysisundefined_2B94/clip_image006_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/AJAXGettingSysisundefined_2B94/clip_image006_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/AJAXGettingSysisundefined_2B94/clip_image006_thumb.jpg" width="292" height="198" mce_src="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/AJAXGettingSysisundefined_2B94/clip_image006_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Internet Explorer 7&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Let’s go ahead, and look at the line of script reported in the error by opening up the HTML source(right click in the browser and choose view source) sent by the server to the client, and see what’s present at the line number 47, and char 1. You will see the below:&lt;/p&gt;  &lt;blockquote&gt;   &lt;div&gt;     &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;       &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;Sys&lt;span style="color: #cc6633"&gt;.WebForms&lt;/span&gt;&lt;span style="color: #cc6633"&gt;.PageRequestManager&lt;/span&gt;&lt;span style="color: #cc6633"&gt;._initialize&lt;/span&gt;('ScriptManager1', document&lt;span style="color: #cc6633"&gt;.getElementById&lt;/span&gt;('form1'));&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
Interestingly this is not something which you wrote yourself on the page, but this is added at the runtime by the ASPX handler which served your page, and this is done by the server side ScriptManager you have in your ASPX page. 

&lt;p&gt;If you search for ‘Sys’ in your HTML source, you might not find it. Because this is something which is sent to the client from a different file which is included in the HTML source. You might see the below (with a different value for the query string d) in the page:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;div&gt;
    &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;
      &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #006080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;script&lt;/span&gt; src=&amp;quot;/AJAXTimer/ScriptResource&lt;span style="color: #cc6633"&gt;.axd&lt;/span&gt;?d=9tk5luWIQHpRBi2jvaLA3ovu_ryV3iBlv84cuaA3MT--_&lt;/pre&gt;

      &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            e3q9KdLubgmmRoMp9ixegSpkyQ0LFGM_KxDw2qwSneq8GS2D1TcTOujL7Q85DE1&lt;span style="color: #006080"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #006080"&gt;amp;&lt;/span&gt;t=556b0a58&amp;quot; &lt;/pre&gt;

      &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            type=&amp;quot;text/javascript&amp;quot;&lt;span style="color: #006080"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;lt;&lt;/span&gt;/&lt;span style="color: #0000ff"&gt;script&lt;/span&gt;&lt;span style="color: #006080"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
So, a request to ScriptResource.axd is made in the runtime, and this is the file where all your javascripts required for your AJAX functionality to work and would be sent to the client as the response. 

&lt;p&gt;Let’s now see how to troubleshoot this problem we are facing. First thing to check is the IIS logs where all the requests with the corresponding response status would be logged. Below is the corresponding log for ScriptResource.axd on the server. &lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;2009-02-26 21:00:28 W3SVC1 GET /AJAXTimer/ScriptResource.axd d=9tk5luWIQHpRBi2jvaLA3ovu_ryV3iBlv84cuaA3MT--_e3q9KdLubgmmRoMp9ixB0N1se3B9f-x_KQriM4xUb90HPABW5aUQb_PG3gbAH41&amp;amp;t=556b0a58 80 - 65.52.22.253 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+.NET+CLR+1.1.4322) royalchallenger 404 0 2 1405 567 15&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, we know for sure that the server is sending a HTTP 404 (Page not found) for the AXD request. Below are some possible reasons why a 404 might be sent from the server:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;File doesn’t exist on the server &lt;/li&gt;

  &lt;li&gt;There is no ISAPI extension configured to serve this request &lt;/li&gt;

  &lt;li&gt;An ISAPI filter plugged in the request pipeline sends a 404 for some reason &lt;/li&gt;

  &lt;li&gt;URLScan rules might prevent it &lt;/li&gt;

  &lt;li&gt;“Verify that file exist” is selected for the ISAPI extension configured to serve the request &lt;/li&gt;

  &lt;li&gt;ISAPI Extension configured for the request (.axd in this example),is a prohibited web service extension &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you are running IIS7 (and above), you should consider using &lt;a href="http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis7/"&gt;FREB&lt;/a&gt; for 404 errors, and from the logs you will be able to know which module is setting the 404. &lt;/p&gt;

&lt;p&gt;If you check if there is a file named ScriptResource.axd is present in the website folder, I’m sure you will be surprised to see none. Because, ScriptResource.axd is a file which would be generated by the ASP.NET runtime on the fly, and would be sent to the client. &lt;/p&gt;

&lt;p&gt;In one of plenty issues I’ve worked on AJAX, my customer was having a wild card ISAPI extension which on sight was advised for removal by me as a troubleshooting step, but only after taking a backup of IIS configuration. After removing the ISAPI extension, it started working – AJAX scripts are been sent to the client without any problem. &lt;/p&gt;

&lt;p&gt;But the ISAPI extension which my customer had seemed to allow the ASPX requests to be processed by aspnet_isapi.dll, but it wasn’t allowing .AXD requests. It was the “Verify that file exists” causing the trouble because there is no physical file called ScriptResource.axd. &lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/AJAXGettingSysisundefined_2B94/clip_image002%5B4%5D.jpg" mce_href="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/AJAXGettingSysisundefined_2B94/clip_image002%5B4%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[4]" border="0" alt="clip_image002[4]" src="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/AJAXGettingSysisundefined_2B94/clip_image002%5B4%5D_thumb.jpg" width="359" height="121" mce_src="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/AJAXGettingSysisundefined_2B94/clip_image002%5B4%5D_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you are running into this problem, I would like you to check for the below things on the server. &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Check if .axd requests are mapped to the aspnet_isapi.dll 
    &lt;ul&gt;
      &lt;li&gt;In IIS6, you can check this in the Website properties --&amp;gt; Home Directory --&amp;gt; Configuration &lt;/li&gt;

      &lt;li&gt;In IIS7, you can check this in Website Features View --&amp;gt; Handler Mappings &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;

  &lt;li&gt;Check if the web.config file has handler mappings added 
    &lt;ul&gt;
      &lt;li&gt;In IIS6 or (IIS7 classic mode), you might need to place this under &amp;lt;system.web/httpHandlers&amp;gt; &lt;/li&gt;

      &lt;li&gt;In IIS7 (integrated mode), you might need to place this under &amp;lt;system.webServer/handlers&amp;gt; &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;div&gt;
    &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;
      &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;add&lt;/span&gt; &lt;span style="color: #ff0000"&gt;verb&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;GET,HEAD&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;path&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;ScriptResource.axd&amp;quot;&lt;/span&gt; &lt;/pre&gt;

      &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;   &lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0,&lt;/pre&gt;

      &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;         Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;validate&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;false&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;You might also want to check &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/12/10/gotcha-don-t-use-xhtmlconformance-mode-legacy-with-asp-net-ajax.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2006/12/10/gotcha-don-t-use-xhtmlconformance-mode-legacy-with-asp-net-ajax.aspx"&gt;this&lt;/a&gt; blog by Scott where he explains about xhtmlConformance, and problems of it with AJAX. You can choose to remove that line from the web.config, or can set the mode to “Transitional” instead of “Legacy”. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9447470" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rakkimk/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.msdn.com/rakkimk/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/rakkimk/archive/tags/AJAX/default.aspx">AJAX</category></item><item><title>VS2008 - Getting "Creating project 'projectname'... project creation failed"</title><link>http://blogs.msdn.com/rakkimk/archive/2009/02/24/vs2008-getting-creating-project-projectname-project-creation-failed.aspx</link><pubDate>Tue, 24 Feb 2009 20:25:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9442899</guid><dc:creator>rakkim</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/rakkimk/comments/9442899.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rakkimk/commentrss.aspx?PostID=9442899</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rakkimk/rsscomments.aspx?PostID=9442899</wfw:comment><description>&lt;p&gt;&lt;strong&gt;Symptom&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Cannot create a simple web application or a windows application project with Visual Studio 2008. Getting &amp;quot;Creating project 'projectname'... project creation failed&amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Cause&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Few packages are marked as skipped for loading    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;Resolution &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Ran devenv /resetskippkgs which reset the skipped packages, and those would be loaded inside the devenv&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hope this helps someone wandering in the internet world in search of a solution! Thanks for stopping by!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9442899" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rakkimk/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/rakkimk/archive/tags/VS+2008/default.aspx">VS 2008</category></item><item><title>IIS7 – Search the complete IIS configuration store – in which web.config is your attribute configured</title><link>http://blogs.msdn.com/rakkimk/archive/2009/02/11/iis7-search-the-complete-iis-configuration-store-in-which-web-config-is-your-attribute-configured.aspx</link><pubDate>Wed, 11 Feb 2009 23:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9413400</guid><dc:creator>rakkim</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/rakkimk/comments/9413400.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rakkimk/commentrss.aspx?PostID=9413400</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rakkimk/rsscomments.aspx?PostID=9413400</wfw:comment><description>&lt;P&gt;As you know IIS 7.0 configuration system is huge, broad, or whatever you feel like calling it. It no longer just exist in its main configuration file applicationHost.config (like Metabase.XML in IIS 6.0). It can be widely spread in any of the web.config files in the virtual directories, or applications. &lt;/P&gt;
&lt;P&gt;Today I had an interesting chat with my colleague on finding a tool to list down what are the web.config files available in a given website. I was suggesting the below code using MWA to just parse the configuration, and print if any VirtualPath of an application (virtual directory) has a file named web.config. &lt;/P&gt;
&lt;P&gt;Update: The below sample doesn't list down the web.config's which are there in any physical folder which is not configured as an Application. So, you need to tweak your code a bit. Thanks to &lt;A href="http://blogs.msdn.com/vijaysk" mce_href="http://blogs.msdn.com/vijaysk"&gt;Vijay&lt;/A&gt; pointing this out. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Sample code snippet in C# listing down all applications, virtual directories available&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;DIV&gt;
&lt;DIV style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;ServerManager sm = &lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; ServerManager();&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;foreach&lt;/SPAN&gt; (Site s &lt;SPAN style="COLOR: #0000ff"&gt;in&lt;/SPAN&gt; sm.Sites)&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;{&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    Console.WriteLine(s.Name + &lt;SPAN style="COLOR: #006080"&gt;"\n"&lt;/SPAN&gt;);&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;foreach&lt;/SPAN&gt; (Application a &lt;SPAN style="COLOR: #0000ff"&gt;in&lt;/SPAN&gt; s.Applications)&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    {&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        &lt;SPAN style="COLOR: #0000ff"&gt;foreach&lt;/SPAN&gt; (VirtualDirectory v &lt;SPAN style="COLOR: #0000ff"&gt;in&lt;/SPAN&gt; a.VirtualDirectories)&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        {&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            &lt;SPAN style="COLOR: #0000ff"&gt;try&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            {&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                &lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt;[] files = Directory.GetFiles(v.PhysicalPath);&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                &lt;SPAN style="COLOR: #0000ff"&gt;for&lt;/SPAN&gt; (&lt;SPAN style="COLOR: #0000ff"&gt;int&lt;/SPAN&gt; i = 0; i &amp;lt; files.Length; i++)&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                    &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt; (files[i].EndsWith(&lt;SPAN style="COLOR: #006080"&gt;"web.config"&lt;/SPAN&gt;))&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                        Console.WriteLine(a + &lt;SPAN style="COLOR: #006080"&gt;" has "&lt;/SPAN&gt; + files[i]);&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            }&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            &lt;SPAN style="COLOR: #0000ff"&gt;catch&lt;/SPAN&gt; (Exception e)&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            {&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;                &lt;SPAN style="COLOR: #008000"&gt;// invalid physical path, so ignore :) &lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;            }&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;        }&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    }&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;    Console.WriteLine(&lt;SPAN style="COLOR: #006080"&gt;"\n"&lt;/SPAN&gt;);&lt;/PRE&gt;&lt;PRE style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;}&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;
&lt;DIV&gt;But, I wasn’t really thinking that there is a powerful module “&lt;A href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1682" mce_href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1682"&gt;Configuration Editor&lt;/A&gt;” which gives you an easy way to search for attributes, and know where they are configured (physical path of the web.config file). Below is a sample screenshot which shows the use of Search feature. &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;BLOCKQUOTE&gt;
&lt;DIV&gt;&lt;A href="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/IIS7Sear.configisyourattributeconfigured_2095/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/IIS7Sear.configisyourattributeconfigured_2095/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/IIS7Sear.configisyourattributeconfigured_2095/image_thumb.png" width=473 height=372 mce_src="http://blogs.msdn.com/blogfiles/rakkimk/WindowsLiveWriter/IIS7Sear.configisyourattributeconfigured_2095/image_thumb.png"&gt;&lt;/A&gt; &lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;
&lt;DIV&gt;So, next time when you want to know where all the given attribute is configured, consider using Configuration Editor. Hope this helps!&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9413400" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rakkimk/archive/tags/IIS+7/default.aspx">IIS 7</category></item></channel></rss>