<?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>From Mind To Words</title><link>http://blogs.msdn.com/vivekkum/default.aspx</link><description>VIVEK KUMBHAR's WEBLOG</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Client Certificate Mapping in FTP 7 &amp; FTP 7.5 - Step by Step - Part 4</title><link>http://blogs.msdn.com/vivekkum/archive/2009/12/02/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-part-4.aspx</link><pubDate>Wed, 02 Dec 2009 09:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9931130</guid><dc:creator>vivekkum</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/vivekkum/comments/9931130.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vivekkum/commentrss.aspx?PostID=9931130</wfw:commentRss><description>&lt;p&gt;Client Certificate Mapping – Step by Step – &lt;a href="http://blogs.msdn.com/vivekkum/archive/2009/11/05/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-table-of-content.aspx" target="_blank"&gt;Table of Content&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In this post, we will install a User Certificate, enable Named Mapping and test FTPS using a tool.&lt;/p&gt;  &lt;p&gt;Install User Certificate:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Open Internet Explorer, and open the website &lt;a href="https://server1/certsrv"&gt;https://server1/certsrv&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Click &lt;b&gt;Request a Certificate&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;Click &lt;b&gt;User Certificate&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;Click Yes on Web Access Confirmation (if it prompts) &lt;/li&gt;    &lt;li&gt;Click &lt;b&gt;Submit&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;Click &lt;b&gt;Install this certificate&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;You will get a confirmation that a user Certificate has been installed &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Confirm Client Certificate has been installed:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Open Internet Explorer &lt;/li&gt;    &lt;li&gt;Click &lt;b&gt;Tools&lt;/b&gt; -&amp;gt; &lt;b&gt;Internet Options&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;Click &lt;b&gt;Content&lt;/b&gt; and click &lt;b&gt;Certificates&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;You will find a certificate with the User Name in the &lt;b&gt;Personal&lt;/b&gt; tab       &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart4_C84C/image024_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="image024" border="0" alt="image024" src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart4_C84C/image024_thumb.jpg" width="463" height="160" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;You can also confirm the same from Certificate MMC      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart4_C84C/image025_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="image025" border="0" alt="image025" src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart4_C84C/image025_thumb.jpg" width="550" height="94" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Export Client Certificate, by clicking on certificate and click &lt;b&gt;Export…&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;Follow Certificate Export Wizard &lt;/li&gt;    &lt;li&gt;Select &lt;b&gt;No, do not export the private key&lt;/b&gt;, click Next &lt;/li&gt;    &lt;li&gt;Select &lt;b&gt;Base-64 encoded X.509 (.CER)&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;Browse to location where you want to save the certificate, click &lt;strong&gt;Save&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;, click &lt;strong&gt;Finish&lt;/strong&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Map user certificate against the user account:&lt;/p&gt;  &lt;p&gt;Export user certificate:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Go to the CA Server (in our case it’s the DC) &lt;/li&gt;    &lt;li&gt;Open &lt;b&gt;Server Manager&lt;/b&gt; -&amp;gt; expand &lt;b&gt;Roles&lt;/b&gt; -&amp;gt; expand &lt;b&gt;Active Directory Certificate Services&lt;/b&gt; -&amp;gt; expand &lt;b&gt;CA (contoso-Issuing-CA01)&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;Click on &lt;b&gt;Issued Certificates&lt;/b&gt;, on the right hand pane you will see the client certificate issued &lt;a href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart4_C84C/image026_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="image026" border="0" alt="image026" src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart4_C84C/image026_thumb.jpg" width="748" height="265" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Right click on the certificate -&amp;gt; click &lt;b&gt;Open&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;Click &lt;b&gt;Details&lt;/b&gt; -&amp;gt; click &lt;b&gt;Copy to File&lt;/span&gt;…&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;The Certificate Export Wizard appears, click Next &lt;/li&gt;    &lt;li&gt;Select &lt;b&gt;Base-64 encoded X.509 (.CER)&lt;/b&gt;, click Next &lt;/li&gt;    &lt;li&gt;Select the location for the certificate and name it (bmayer.cer in our case). &lt;/li&gt;    &lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt; -&amp;gt; click &lt;strong&gt;Finish&lt;/strong&gt; the Export Wizard. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Map the certificate:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Go to the DC Server &lt;/li&gt;    &lt;li&gt;Open &lt;b&gt;Server Manager&lt;/b&gt; -&amp;gt; expand &lt;b&gt;Roles&lt;/b&gt; -&amp;gt; expand &lt;b&gt;Active Directory Domain Services&lt;/b&gt; -&amp;gt; expand &lt;b&gt;Active Directory Users and Computers&lt;/b&gt; -&amp;gt; expand &lt;b&gt;domain (contoso.com)&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;I have a OU for the user accounts “People” &lt;/li&gt;    &lt;li&gt;To view the Advanced Feature, click &lt;b&gt;View&lt;/b&gt; -&amp;gt; &lt;b&gt;Advanced Features        &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart4_C84C/image027_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="image027" border="0" alt="image027" src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart4_C84C/image027_thumb.jpg" width="537" height="296" /&gt;&lt;/a&gt; &lt;/b&gt;&lt;/li&gt;    &lt;li&gt;Right click on user name (in our case Barbara Mayer) and click &lt;b&gt;Name Mappings…        &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart4_C84C/image028_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="image028" border="0" alt="image028" src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart4_C84C/image028_thumb.jpg" width="682" height="356" /&gt;&lt;/a&gt; &lt;/b&gt;&lt;/li&gt;    &lt;li&gt;Security Identity Mapping&lt;/b&gt; dialog appears      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart4_C84C/image029_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="image029" border="0" alt="image029" src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart4_C84C/image029_thumb.jpg" width="379" height="347" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Under &lt;b&gt;X.509 Certificates&lt;/b&gt;, click &lt;b&gt;Add…&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;Browse to the location you have saved the user certificate, click Open &lt;/li&gt;    &lt;li&gt;Click OK      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart4_C84C/image030_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="image030" border="0" alt="image030" src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart4_C84C/image030_thumb.jpg" width="380" height="349" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Click OK &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;We now have a client certificate mapped against the user account.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Access FTPS site:&lt;/p&gt;  &lt;p&gt;We will use AlexFTPS-1.0.2 (&lt;a href="http://ftps.codeplex.com"&gt;http://ftps.codeplex.com&lt;/a&gt;) client to verify our setup. I have it under C: drive. I have a DNS entry for &lt;a href="ftp://ftp.contoso.com"&gt;ftp.contoso.com&lt;/a&gt; against the IP of Server2.&lt;/p&gt;  &lt;p&gt;The command we will use is: &lt;/p&gt;  &lt;p&gt;&lt;span style="background-color: yellow; font-family: courier new; font-size: medium"&gt;ftps -h ftp.contoso.com -port 21 -ssl All -sslClientCertPath C:\Users\bmayer\Documents\bmayer.cer –l&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Here is the actual connection:&lt;/p&gt;  &lt;div&gt;   &lt;pre style="width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; height: auto; font-size: 15px; overflow: auto; cursor: text"&gt;&lt;code&gt;
C:\AlexFTPS-1.0.2&amp;gt;ftps -h ftp.contoso.com -port 21 -ssl All -sslClientCertPath C:\Users\bmayer\Documents\bmayer.cer -l
 
Alex FTPS version 1.0.2
Copyright (C) Alessandro Pilotti 2008-2009
 
http://www.codeplex.com/ftps
info@pilotti.it
 
This is free software, you may use it under the terms of
the LGPL license &lt;http: lesser.html copyleft www.gnu.org&gt;
 
WARNING: SSL/TLS remote certificate name mismatch
 
SSL/TLS Server certificate details:
 
[Subject]
CN=newftpsite, OU=FTP Unit, O=contoso, L=Bangalore, S=Karnataka, C=IN
 
[Issuer]
CN=contoso-Issuing-CA01, DC=contoso, DC=com
 
[Serial Number]
619877AD000000000015
 
[Not Before]
27-10-2009 08:22:31
 
[Not After]
27-10-2011 08:22:31
 
[Thumbprint]
FE3ABE6A25AB447972B769A0C084B92D8DE098F2
 
Accept invalid server certificate? (Y/N) Y
 
Remote directory: /
 
10-27-09  10:40AM       &amp;lt;dir&amp;gt;          myFolder
10-27-09  10:42AM                 1944 sample.txt
10-27-09  10:42AM                 8748 sample1.txt
10-27-09  10:42AM               518454 snap.bmp
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Looking good.&lt;/p&gt;

&lt;p&gt;We have successfully configured FTPS in IIS 7 &amp;amp; IIS 7.5 using Active Directory enabled One-to-One Client Certificate mapping.&lt;/p&gt;

&lt;p&gt;Hope this helps,
  &lt;br /&gt;Vivek Kumbhar&lt;/p&gt;

&lt;br /&gt;&lt;b&gt;&lt;i&gt;Quote of the day: &lt;/i&gt;&lt;/b&gt;

&lt;br /&gt;A censor is a man who knows more than he thinks you ought to. - Granville Hicks&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9931130" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7/default.aspx">IIS 7</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7.5/default.aspx">IIS 7.5</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/Client+Certificate/default.aspx">Client Certificate</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/Step+by+Step/default.aspx">Step by Step</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FTP+7.5/default.aspx">FTP 7.5</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FTP+7/default.aspx">FTP 7</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FTPS/default.aspx">FTPS</category></item><item><title>Client Certificate Mapping in FTP 7 &amp; FTP 7.5 - Step by Step - Part 3</title><link>http://blogs.msdn.com/vivekkum/archive/2009/12/02/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-part-3.aspx</link><pubDate>Tue, 01 Dec 2009 21:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9931087</guid><dc:creator>vivekkum</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/vivekkum/comments/9931087.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vivekkum/commentrss.aspx?PostID=9931087</wfw:commentRss><description>&lt;P&gt;Client Certificate Mapping – Step by Step – &lt;A href="http://blogs.msdn.com/vivekkum/archive/2009/11/05/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-table-of-content.aspx" target=_blank mce_href="http://blogs.msdn.com/vivekkum/archive/2009/11/05/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-table-of-content.aspx"&gt;Table of Content&lt;/A&gt;&lt;/SPAN&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;In this post, we will create FTP Site on IIS and configure it to use Client Certificate. &lt;/P&gt;
&lt;P&gt;Create FTP Site: &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Open IIS Manager and right click on &lt;STRONG&gt;Sites&lt;/STRONG&gt; Folder &lt;/LI&gt;
&lt;LI&gt;Click &lt;STRONG&gt;Add FTP Site…&lt;/STRONG&gt; 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image016_4.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image016_4.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image016 border=0 alt=image016 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image016_thumb_1.jpg" width=462 height=222 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image016_thumb_1.jpg"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;Enter the &lt;STRONG&gt;FTP site name:&lt;/STRONG&gt; and select the &lt;STRONG&gt;Physical path&lt;/STRONG&gt; for the site, click Next 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image017_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image017_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=image017 border=0 alt=image017 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image017_thumb.jpg" width=581 height=443 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image017_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;Select Binding and SSL settings as shown, I have selected the Server Certificate we requested above “newftpsite” under &lt;STRONG&gt;SSL Certificate&lt;/STRONG&gt;. Click Next 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image018_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image018_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=image018 border=0 alt=image018 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image018_thumb.jpg" width=582 height=445 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image018_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;We won’t be selecting any Authentication methods here, under Authentication select &lt;STRONG&gt;All Users&lt;/STRONG&gt; and select &lt;STRONG&gt;Read, Write&lt;/STRONG&gt; permissions. Click &lt;STRONG&gt;Finish&lt;/STRONG&gt;. 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image019_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image019_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=image019 border=0 alt=image019 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image019_thumb.jpg" width=582 height=442 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image019_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Create User home directory: &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Right click on the FTP Site (newftpsite), click Explore &lt;/LI&gt;
&lt;LI&gt;Create a folder with the domain name (in our case contoso) &lt;/LI&gt;
&lt;LI&gt;Create a folder with the user name (bmayer in our case) &lt;/LI&gt;
&lt;LI&gt;Right click on the folder (bmayer) and click Properties &lt;/LI&gt;
&lt;LI&gt;Click &lt;STRONG&gt;Security&lt;/STRONG&gt;, click &lt;STRONG&gt;Advanced&lt;/STRONG&gt; &lt;/LI&gt;
&lt;LI&gt;Click &lt;STRONG&gt;Change Permissions…&lt;/STRONG&gt; &lt;/LI&gt;
&lt;LI&gt;Uncheck &lt;STRONG&gt;Include inheritable permissions from this object’s parent&lt;/STRONG&gt;, click Add &lt;/LI&gt;
&lt;LI&gt;Select &lt;STRONG&gt;Users, CREATOR OWNER&lt;/STRONG&gt; and &lt;STRONG&gt;TrustedInstaller&lt;/STRONG&gt; and click &lt;STRONG&gt;Remove&lt;/STRONG&gt; &lt;/LI&gt;
&lt;LI&gt;Click OK twice &lt;/LI&gt;
&lt;LI&gt;Click &lt;STRONG&gt;Edit…&lt;/STRONG&gt; &lt;/LI&gt;
&lt;LI&gt;Click &lt;STRONG&gt;Add…&lt;/STRONG&gt; and add user name (bmayer) &lt;/LI&gt;
&lt;LI&gt;Give Modify permission for the account &lt;/LI&gt;
&lt;LI&gt;Click OK twice &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;BR&gt;Let us now quickly verify FTP Settings: &lt;/P&gt;
&lt;P&gt;FTP Authentication &lt;/P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image020_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image020_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=image020 border=0 alt=image020 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image020_thumb.jpg" width=335 height=185 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image020_thumb.jpg"&gt;&lt;/A&gt; 
&lt;P&gt;FTP Authorization Rules &lt;/P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image021_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image021_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=image021 border=0 alt=image021 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image021_thumb.jpg" width=376 height=146 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image021_thumb.jpg"&gt;&lt;/A&gt; 
&lt;P&gt;FTP SSL Settings &lt;/P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image022_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image022_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=image022 border=0 alt=image022 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image022_thumb.jpg" width=436 height=289 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image022_thumb.jpg"&gt;&lt;/A&gt; 
&lt;P&gt;FTP User Isolation &lt;/P&gt;
&lt;P&gt;We have selected &lt;STRONG&gt;User name directory (disable global virtual directories)&lt;/STRONG&gt; &lt;/P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image023_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image023_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=image023 border=0 alt=image023 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image023_thumb.jpg" width=437 height=340 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart3_BDEF/image023_thumb.jpg"&gt;&lt;/A&gt; 
&lt;P&gt;Let us now examine the applicationHost.config and enable Client Certificate for the FTP Site. There is no UI to enable Client Certificate, we will need to add the below mentioned text. &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="BACKGROUND-COLOR: yellow; FONT-FAMILY: Courier New; FONT-SIZE: medium"&gt;&amp;lt;sslClientCertificates clientCertificatePolicy="CertRequire" useActiveDirectoryMapping="true" /&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;and &lt;BR&gt;&lt;SPAN style="BACKGROUND-COLOR: yellow; FONT-FAMILY: Courier New; FONT-SIZE: medium"&gt;&amp;lt;clientCertAuthentication enabled="true" /&amp;gt;&lt;/SPAN&gt; &lt;/P&gt;&lt;PRE style="BORDER-BOTTOM: thin solid; BORDER-LEFT: thin solid; BACKGROUND-COLOR: rgb(79,110,152); WIDTH: 85%; FONT-FAMILY: consolas,'Courier New',courier,monospace; HEIGHT: auto; COLOR: rgb(255,255,255); FONT-SIZE: 15px; OVERFLOW: auto; BORDER-TOP: thin solid; CURSOR: text; BORDER-RIGHT: thin solid"&gt;&lt;CODE&gt;
            &amp;lt;site name="newftpsite" id="2"&amp;gt;
                &amp;lt;application path="/"&amp;gt;
                    &amp;lt;virtualDirectory path="/" physicalPath="C:\inetpub\ftproot" /&amp;gt;
                &amp;lt;/application&amp;gt;
                &amp;lt;bindings&amp;gt;
                    &amp;lt;binding protocol="ftp" bindingInformation="*:21:" /&amp;gt;
                &amp;lt;/bindings&amp;gt;
                &amp;lt;ftpServer&amp;gt;
                    &amp;lt;security&amp;gt;
                        &amp;lt;ssl serverCertHash="1AB9D34BE5F01B3A213FFEAE1556E180B8BB7BAE" ssl128="true" controlChannelPolicy="SslRequire" dataChannelPolicy="SslRequire" /&amp;gt;
                        &amp;lt;sslClientCertificates clientCertificatePolicy="CertRequire" useActiveDirectoryMapping="true" /&amp;gt;
                        &amp;lt;authentication&amp;gt;
                            &amp;lt;anonymousAuthentication enabled="false" /&amp;gt;
                            &amp;lt;basicAuthentication enabled="false" /&amp;gt;
                            &amp;lt;clientCertAuthentication enabled="true" /&amp;gt;
                        &amp;lt;/authentication&amp;gt;
                    &amp;lt;/security&amp;gt;
                    &amp;lt;userIsolation mode="IsolateAllDirectories"&amp;gt;
                        &amp;lt;activeDirectory /&amp;gt;
                    &amp;lt;/userIsolation&amp;gt;
                &amp;lt;/ftpServer&amp;gt;
            &amp;lt;/site&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;OK, so we are good for today. Next, we will Install a User Certificate, map it to an account and then test FTPS using a client. Stay tuned… &lt;/P&gt;
&lt;P&gt;Hope that helps, &lt;BR&gt;Vivek Kumbhar &lt;/P&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;EM&gt;Quote of the day: &lt;/EM&gt;&lt;/STRONG&gt;&lt;BR&gt;It is not worth an intelligent man's time to be in the majority. By definition, there are already enough people to do that. - G. H. Hardy&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9931087" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7/default.aspx">IIS 7</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7.5/default.aspx">IIS 7.5</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/Client+Certificate/default.aspx">Client Certificate</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/Step+by+Step/default.aspx">Step by Step</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FTP+7.5/default.aspx">FTP 7.5</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FTP+7/default.aspx">FTP 7</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FTPS/default.aspx">FTPS</category></item><item><title>Client Certificate Mapping in FTP 7 &amp; FTP 7.5 - Step by Step - Table of Content</title><link>http://blogs.msdn.com/vivekkum/archive/2009/11/05/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-table-of-content.aspx</link><pubDate>Wed, 04 Nov 2009 21:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9917551</guid><dc:creator>vivekkum</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/vivekkum/comments/9917551.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vivekkum/commentrss.aspx?PostID=9917551</wfw:commentRss><description>&lt;P&gt;This post links to all Client Certificate Mapping posts in this series. &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/vivekkum/archive/2009/11/02/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-part-1.aspx" target=_blank mce_href="http://blogs.msdn.com/vivekkum/archive/2009/11/02/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-part-1.aspx"&gt;Client Certificate Mapping in FTP 7 &amp;amp; FTP 7.5 - Step by Step - Part 1&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/vivekkum/archive/2009/11/05/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-part-2.aspx" target=_blank mce_href="http://blogs.msdn.com/vivekkum/archive/2009/11/05/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-part-2.aspx"&gt;Client Certificate Mapping in FTP 7 &amp;amp; FTP 7.5 - Step by Step - Part 2&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/vivekkum/archive/2009/12/02/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-part-3.aspx" target=_blank mce_href="http://blogs.msdn.com/vivekkum/archive/2009/12/02/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-part-3.aspx"&gt;Client Certificate Mapping in FTP 7 &amp;amp; FTP 7.5 - Step by Step - Part 3&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/vivekkum/archive/2009/12/02/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-part-4.aspx" target=_blank&gt;Client Certificate Mapping in FTP 7 &amp;amp; FTP 7.5 - Step by Step - Part 4&lt;/A&gt; &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;More to come.. so stay tuned… &lt;/P&gt;
&lt;P&gt;Hope this help, &lt;BR&gt;Vivek Kumbhar &lt;/P&gt;
&lt;P&gt;PS. If a link doesn’t work, don’t worry.. they may be in “Draft” mode, and not yet published. &lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;I&gt;Quote of the day: &lt;/I&gt;&lt;/B&gt;&lt;BR&gt;The significance of man is that he is insignificant and is aware of it. - Carl Becker&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9917551" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7/default.aspx">IIS 7</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7.5/default.aspx">IIS 7.5</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/Client+Certificate/default.aspx">Client Certificate</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/Step+by+Step/default.aspx">Step by Step</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FTP+7.5/default.aspx">FTP 7.5</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FTP+7/default.aspx">FTP 7</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FTPS/default.aspx">FTPS</category></item><item><title>Client Certificate Mapping in FTP 7 &amp; FTP 7.5 - Step by Step - Part 2</title><link>http://blogs.msdn.com/vivekkum/archive/2009/11/05/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-part-2.aspx</link><pubDate>Wed, 04 Nov 2009 20:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9917520</guid><dc:creator>vivekkum</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/vivekkum/comments/9917520.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vivekkum/commentrss.aspx?PostID=9917520</wfw:commentRss><description>&lt;P&gt;Client Certificate Mapping – Step by Step – &lt;A href="http://blogs.msdn.com/vivekkum/archive/2009/11/05/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-table-of-content.aspx" target=_blank&gt;Table of Content&lt;/A&gt;&lt;/SPAN&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;This is Part 2 of our series on implementing Client Certificate mapping in FTP 7 or FTP 7.5. Today we will Install Server Certificate on IIS. &lt;/P&gt;
&lt;P&gt;In Part 1, I gave you a brief background of the environment we will be working on in our scenario. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Issue Server Certificate&lt;/STRONG&gt; &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Click on the computer name in IIS Manager and double click on &lt;STRONG&gt;Server Certificates&lt;/STRONG&gt; 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image007_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image007_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=image007 border=0 alt=image007 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image007_thumb.jpg" width=446 height=217 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image007_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;Click on &lt;STRONG&gt;Create Certificate Request…&lt;/STRONG&gt; 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image008_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image008_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=image008 border=0 alt=image008 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image008_thumb.jpg" width=473 height=197 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image008_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;Fill in the textboxes as per your requirement. 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image009_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image009_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=image009 border=0 alt=image009 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image009_thumb.jpg" width=583 height=445 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image009_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;Let the Cryptographic service provider be as default 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image010_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image010_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=image010 border=0 alt=image010 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image010_thumb.jpg" width=583 height=443 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image010_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;Select a location to save the certificate request 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image011_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image011_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=image011 border=0 alt=image011 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image011_thumb.jpg" width=582 height=445 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image011_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;Click &lt;STRONG&gt;Finish&lt;/STRONG&gt; &lt;/LI&gt;
&lt;LI&gt;Send this file across to your CA to provide a response; in our case we will generate the response by accessing the local CA website. &lt;/LI&gt;
&lt;LI&gt;Access the CA, by typing &lt;A href="https://server1/certsrv" mce_href="https://server1/certsrv"&gt;https://server1/certsrv&lt;/A&gt; in Internet Explorer &lt;/LI&gt;
&lt;LI&gt;Click on &lt;STRONG&gt;Request Certificate&lt;/STRONG&gt; &lt;/LI&gt;
&lt;LI&gt;Click on &lt;STRONG&gt;advanced certificate request&lt;/STRONG&gt; &lt;/LI&gt;
&lt;LI&gt;Click on &lt;STRONG&gt;Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file, or submit a renewal request by using a base-64-encoded PKCS #7 file&lt;/STRONG&gt;. &lt;/LI&gt;
&lt;LI&gt;Open the certreq.txt, we generated in Step 5 and select the text from the line below ---BEGIN NEW CERTIFICATE REQUEST---- till ----END NEW CERTIFICATE REQUEST---- and copy it. 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image012_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image012_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=image012 border=0 alt=image012 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image012_thumb.jpg" width=527 height=326 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image012_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;Paste the text in &lt;STRONG&gt;Saved Request&lt;/STRONG&gt; &lt;/LI&gt;
&lt;LI&gt;Under &lt;STRONG&gt;Certificate Template:&lt;/STRONG&gt; select &lt;STRONG&gt;Web Server&lt;/STRONG&gt; and click Submit &lt;/LI&gt;
&lt;LI&gt;Click &lt;STRONG&gt;Yes&lt;/STRONG&gt; in the &lt;STRONG&gt;Web Access Confirmation&lt;/STRONG&gt; prompt (if it appears) &lt;/LI&gt;
&lt;LI&gt;Select &lt;STRONG&gt;Base 64 encoded&lt;/STRONG&gt; and click on &lt;STRONG&gt;Download certificate&lt;/STRONG&gt; and &lt;STRONG&gt;Download certificate chain&lt;/STRONG&gt; and save them. &lt;/LI&gt;
&lt;LI&gt;You should have 2 files, one certnew.cer and certnew.p7b &lt;/LI&gt;
&lt;LI&gt;Open IIS Manager, click on computer name and double click &lt;STRONG&gt;Server Certificate&lt;/STRONG&gt; &lt;/LI&gt;
&lt;LI&gt;Click &lt;STRONG&gt;Complete Certificate Request…&lt;/STRONG&gt; 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image013_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image013_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=image013 border=0 alt=image013 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image013_thumb.jpg" width=468 height=205 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image013_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;Select certnew.cer we saved earlier, click OK 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image014_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image014_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=image014 border=0 alt=image014 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image014_thumb.jpg" width=582 height=443 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image014_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;We now have Server Certificate installed on IIS 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image015_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image015_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=image015 border=0 alt=image015 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image015_thumb.jpg" width=267 height=192 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ClientCertificateMappin.5StepbyStepPart2_9870/image015_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;You should also install the Certificate Chain, as your CA will not be in the Trusted Root CA list. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Next, we will create FTP site and enable Client Certificate on FTP. Stay tuned… &lt;/P&gt;
&lt;P&gt;Hope that helps, &lt;BR&gt;Vivek Kumbhar &lt;/P&gt;&lt;STRONG&gt;&lt;EM&gt;Quote of the day: &lt;/EM&gt;&lt;/STRONG&gt;&lt;BR&gt;It is impossible to defeat an ignorant man in argument. - William G. McAdoo &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9917520" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7/default.aspx">IIS 7</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7.5/default.aspx">IIS 7.5</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/Client+Certificate/default.aspx">Client Certificate</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/Step+by+Step/default.aspx">Step by Step</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FTP+7.5/default.aspx">FTP 7.5</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FTP+7/default.aspx">FTP 7</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FTPS/default.aspx">FTPS</category></item><item><title>Client Certificate Mapping in FTP 7 &amp; FTP 7.5 - Step by Step - Part 1</title><link>http://blogs.msdn.com/vivekkum/archive/2009/11/02/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-part-1.aspx</link><pubDate>Mon, 02 Nov 2009 01:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9916152</guid><dc:creator>vivekkum</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/vivekkum/comments/9916152.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vivekkum/commentrss.aspx?PostID=9916152</wfw:commentRss><description>&lt;P&gt;Client Certificate Mapping – Step by Step – &lt;A href="http://blogs.msdn.com/vivekkum/archive/2009/11/05/client-certificate-mapping-in-ftp-7-ftp-7-5-step-by-step-table-of-content.aspx" target=_blank&gt;Table of Content&lt;/A&gt;&lt;/SPAN&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Client Certificate Mapping Authentication Role Service in IIS 7 and IIS 7.5 enables authentication between a Client and the Web Server by presenting client certificates over secure channel. In IIS 7 and IIS 7.5, Client Certificate Mapping Authentication uses Active Directory to map client certificates against a users account in a domain.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;NOTE:&lt;/B&gt; Client Certificate Mapping in FTP 7 / 7.5 is Active Directory One-to-One Mappings only. &lt;/P&gt;
&lt;P&gt;Here is Part 1 of a 4 Part series on implementing Client Certificate mapping in FTP 7 or FTP 7.5.&lt;/P&gt;
&lt;P&gt;Here is some background of the environment I will be using to configure the scenario:&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Domain Controller&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Name: Server1 &lt;BR&gt;OS: Windows Server 2008 R2 &lt;BR&gt;DC: contoso.com &lt;BR&gt;CA: contoso-Issuing-CA01 &lt;BR&gt;Roles enabled:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image001_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image001_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=image001 border=0 alt=image001 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image001_thumb.jpg" width=274 height=125 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image001_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Active Directory Certificate Services has following Role Services installed:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image002_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/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=image002 border=0 alt=image002 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image002_thumb.jpg" width=339 height=130 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image002_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Active Directory Domain Services has following Role Services installed:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image003_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image003_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=image003 border=0 alt=image003 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image003_thumb.jpg" width=354 height=112 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image003_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;IIS Role Services installed on DC:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image004_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/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=image004 border=0 alt=image004 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image004_thumb.jpg" width=424 height=876 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image004_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;IIS Server&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Name: Server2 &lt;BR&gt;OS: Windows Server 2008 R2 &lt;BR&gt;Roles enabled:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image005_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image005_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=image005 border=0 alt=image005 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image005_thumb.jpg" width=208 height=77 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image005_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Following IIS Role Services installed:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image006_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/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=image006 border=0 alt=image006 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image006_thumb.jpg" width=430 height=875 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/StepstoimplementClientCertificatemappi.5_BC12/image006_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;Client&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Name: 620-WIN7 &lt;BR&gt;OS: Windows 7 Enterprise Edition &lt;BR&gt;AlexFTPS-1.0.2 from &lt;A href="http://ftps.codeplex.com/" target=_blank mce_href="http://ftps.codeplex.com/"&gt;http://ftps.codeplex.com/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Next, we will Request and Install Server Certificate on IIS. Stay tuned…&lt;/P&gt;
&lt;P&gt;Hope that helps,&lt;BR&gt;Vivek Kumbhar.&lt;/P&gt;&lt;B&gt;&lt;I&gt;Quote of the day: &lt;/I&gt;&lt;/B&gt;&lt;BR&gt;The significance of man is that he is insignificant and is aware of it. - Carl Becker &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9916152" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7/default.aspx">IIS 7</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7.5/default.aspx">IIS 7.5</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/Client+Certificate/default.aspx">Client Certificate</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/Step+by+Step/default.aspx">Step by Step</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FTP+7.5/default.aspx">FTP 7.5</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FTP+7/default.aspx">FTP 7</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FTPS/default.aspx">FTPS</category></item><item><title>“Parser Error Message: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.” when debug=”true” in .aspx page</title><link>http://blogs.msdn.com/vivekkum/archive/2009/07/20/parser-error-message-this-implementation-is-not-part-of-the-windows-platform-fips-validated-cryptographic-algorithms-when-debug-true-in-aspx-page.aspx</link><pubDate>Mon, 20 Jul 2009 19:53:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9841901</guid><dc:creator>vivekkum</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/vivekkum/comments/9841901.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vivekkum/commentrss.aspx?PostID=9841901</wfw:commentRss><description>&lt;p&gt;Just recently one of my customer faced the below mentioned error on his Windows Server 2008 SP2 box.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/ParserErrorMessageThisimplement.aspxpage_8AFC/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/vivekkum/WindowsLiveWriter/ParserErrorMessageThisimplement.aspxpage_8AFC/image_thumb.png" width="789" height="372" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Read my post in our team blog on the issue: &lt;a href="http://blogs.msdn.com/webtopics/archive/2009/07/20/parser-error-message-this-implementation-is-not-part-of-the-windows-platform-fips-validated-cryptographic-algorithms-when-net-page-has-debug-true.aspx" target="_blank"&gt;Parser Error Message: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;HTH.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9841901" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+6/default.aspx">IIS 6</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FIPS/default.aspx">FIPS</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7/default.aspx">IIS 7</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Blind drop FTP in IIS 7/7.5</title><link>http://blogs.msdn.com/vivekkum/archive/2009/05/10/blind-drop-ftp-in-iis-7-7-5.aspx</link><pubDate>Sun, 10 May 2009 20:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9600763</guid><dc:creator>vivekkum</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/vivekkum/comments/9600763.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vivekkum/commentrss.aspx?PostID=9600763</wfw:commentRss><description>&lt;P&gt;I saw this topic floating around for few days and since it’s very interesting I thought of blogging it for everybody’s benefit.&lt;/P&gt;
&lt;P&gt;If you haven’t heard about Blind Drop FTP have a look at this blog &lt;A href="http://www.iisanswers.com/Blind_drop_ftp.htm" target=_blank mce_href="http://www.iisanswers.com/Blind_drop_ftp.htm"&gt;Creating a Blind Drop FTP Server&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;I thought of testing the same on IIS 7 and IIS 7.5. Here is a step by step of the same..&lt;/P&gt;
&lt;P&gt;For IIS 7, you will have to install OOB (Out of Band) &lt;A href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1620" target=_blank mce_href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1620"&gt;Microsoft FTP Publishing Service 7.5 for IIS 7.0 (x64)&lt;/A&gt; or &lt;A href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1619" target=_blank mce_href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1619"&gt;Microsoft FTP Publishing Service 7.5 for IIS 7.0 (x86)&lt;/A&gt; depending on your platform. &lt;/P&gt;
&lt;P&gt;I am using Windows Server 2008 R2 RC1 for this scenario.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Creating directory structure&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;I have created FTPRoot on my D drive and it has Incoming directory&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image1_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image1_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image1 border=0 alt=image1 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image1_thumb.png" width=162 height=105 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image1_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Setting NTFS Permission on the directory&lt;/P&gt;
&lt;P&gt;Right click on FTPRoot folder -&amp;gt; Properties -&amp;gt; Security &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image5_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image5_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image5 border=0 alt=image5 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image5_thumb.png" width=356 height=416 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image5_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Click on Advanced button -&amp;gt; Change Permissions...&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image6_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image6_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image6 border=0 alt=image6 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image6_thumb.png" width=622 height=400 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image6_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Uncheck the check box “Include inheritable permissions from this object’s parent” -&amp;gt; click Add&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image7_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image7_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image7 border=0 alt=image7 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image7_thumb.png" width=640 height=410 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image7_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Select SYSTEM, Authenticated Users and Users and click Remove&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image8_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image8_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image8 border=0 alt=image8 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image8_thumb.png" width=639 height=415 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image8_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Click OK and click OK again&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image9_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image9_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image9 border=0 alt=image9 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image9_thumb.png" width=364 height=387 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image9_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Click Add... and select IUSR of the local machine&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image10_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image10_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image10 border=0 alt=image10 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image10_thumb.png" width=476 height=260 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image10_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Click OK&lt;/P&gt;
&lt;P&gt;Remove Read &amp;amp; execute and Read permission for IUSR as shown below. So IUSR group has only List folder contents permission of FTPRoot folder&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image11_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image11_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image11 border=0 alt=image11 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image11_thumb.png" width=380 height=460 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image11_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Click OK and click OK again&lt;/P&gt;
&lt;P&gt;Go to the Incoming folder and right click on the Incoming folder and click Properties.&lt;/P&gt;
&lt;P&gt;Click Advanced -&amp;gt; Change Permissions &lt;/P&gt;
&lt;P&gt;Uncheck the check box “Include inheritable permissions from this object’s parent” -&amp;gt; click Add&lt;/P&gt;
&lt;P&gt;Select IUSR and click Edit...&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image12_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image12_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image12 border=0 alt=image12 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image12_thumb.png" width=623 height=411 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image12_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Click on Apply to: and select “This folder only” -&amp;gt; click Clear All&lt;/P&gt;
&lt;P&gt;Select Create files / write data, Create folders / append data, Write attributes, Write extended attributes and Read permissions as shown below&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image13_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image13_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image13 border=0 alt=image13 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image13_thumb.png" width=378 height=475 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image13_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Click OK and click Apply&lt;/P&gt;
&lt;P&gt;Click Add... and select IUSR of the local machine, click OK&lt;/P&gt;
&lt;P&gt;Select List folder / read data, Read attributes, Read extended attributes and Read permissions as shown below&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image14_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image14_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image14 border=0 alt=image14 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image14_thumb.png" width=374 height=477 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image14_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Click OK&lt;/P&gt;
&lt;P&gt;Select the check box “Replace all child object permissions with inheritable permissions from this object” -&amp;gt; Click OK&lt;/P&gt;
&lt;P&gt;Permissions on Incoming folder are as follows:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image15_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image15_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image15 border=0 alt=image15 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image15_thumb.png" width=596 height=254 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image15_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Click OK and click OK again&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Configuring FTP in IIS&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;Creating the FTP Site Basic Settings&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image2_4.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image2_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image2 border=0 alt=image2 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image2_thumb_1.png" width=525 height=283 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image2_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Configuring FTP Authentication&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image3_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image3_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image3 border=0 alt=image3 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image3_thumb.png" width=416 height=162 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image3_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Configuring FTP Authorization&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image4_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image4_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image4 border=0 alt=image4 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image4_thumb.png" width=486 height=523 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image4_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Configuring FTP Request Filtering. Add Deny Command… LIST and NLST as shown below&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image19_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image19_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image19 border=0 alt=image19 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image19_thumb.png" width=530 height=261 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image19_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Click on Incoming and click FTP Authorization Rules and verify that you have Anonymous Users with Read, Write permissions.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image18_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image18_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image18 border=0 alt=image18 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image18_thumb.png" width=661 height=187 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image18_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Now, let’s test the FTP site from a command prompt&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image16_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image16_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image16 border=0 alt=image16 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image16_thumb.png" width=574 height=265 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image16_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Nice.&lt;/P&gt;
&lt;P&gt;Check the FTP logfile and we see the following:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image17_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image17_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image17 border=0 alt=image17 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image17_thumb.png" width=850 height=161 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/BlinddropinIIS77.5_9385/image17_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Wondering why we added that FTP Request Filtering setting above. &lt;/P&gt;
&lt;P&gt;I tried “ls” command above to see if the files / folder are listed. I got the error 500 i.e. “internal server error” because the command is not allowed with a substatus 5 i.e. “Access is denied.” as per the FTP log above. &lt;/P&gt;
&lt;P&gt;If you don’t add the above request filtering you will be able to see the Incoming folder but you won’t be able to change to the folder nor add file / folder in the FTPRoot folder. This looks like a neat workaround to what was default behavior in Windows Server 2003 IIS 6 FTP configuration.&lt;/P&gt;
&lt;P&gt;HTH&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9600763" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vivekkum/archive/tags/General+Troubleshooting/default.aspx">General Troubleshooting</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/FTP/default.aspx">FTP</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7/default.aspx">IIS 7</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7.5/default.aspx">IIS 7.5</category></item><item><title>HTTP Error 404.3 – Not Found, when browsing WCF application after reinstalling IIS</title><link>http://blogs.msdn.com/vivekkum/archive/2009/05/07/http-error-404-3-not-found-when-browsing-wcf-application-after-reinstalling-iis.aspx</link><pubDate>Thu, 07 May 2009 02:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9592370</guid><dc:creator>vivekkum</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/vivekkum/comments/9592370.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vivekkum/commentrss.aspx?PostID=9592370</wfw:commentRss><description>&lt;P&gt;Sometime back my friend had a weird issue on his machine. He was working on his WCF application and as per his requirement he ran some command which brought his IIS down.&lt;/P&gt;
&lt;P&gt;So, to resolve the issue he reinstalled IIS and now his WCF application won’t work. &lt;/P&gt;
&lt;P&gt;Here is the scenario:&lt;/P&gt;
&lt;P&gt;I am using Win 7 RC for our test; his was a Windows Vista box. I have IIS installed and have Microsoft .NET Framework 3.5.1 enabled, here’s the screenshot&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image1_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image1_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=image1 border=0 alt=image1 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image1_thumb.png" width=443 height=256 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image1_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;I created a simple WCF page such that it proves WCF is working on the machine.&lt;/P&gt;
&lt;P&gt;Now, let’s uninstall IIS. Look at the prompt here&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image2_4.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image2_4.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image2 border=0 alt=image2 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image2_thumb_1.png" width=392 height=280 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image2_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;The prompt says it will turn off the Windows Communication Foundation HTTP Activation.&lt;/P&gt;
&lt;P&gt;On Windows Server 2008, it will prompt you something like this&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image8_4.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image8_4.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image8 border=0 alt=image8 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image8_thumb_1.png" width=658 height=290 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image8_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;On Windows Server 2008 R2 RC1, it shows like this&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image9_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image9_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=image9 border=0 alt=image9 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image9_thumb.png" width=613 height=237 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image9_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Click Yes&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image3_4.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image3_4.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image3 border=0 alt=image3 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image3_thumb_1.png" width=421 height=112 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image3_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Click OK&lt;/P&gt;
&lt;P&gt;IIS is uninstalled.&lt;/P&gt;
&lt;P&gt;Check the inetsrv folder and you will find few files and the applicationHost.config remaining&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image4_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image4_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=image4 border=0 alt=image4 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image4_thumb.png" width=618 height=379 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image4_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Now, I reinstall IIS again and this time not selecting the WCF HTTP Activation because many of the times we will miss this option.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image013_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image013_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=image013 border=0 alt=image013 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image013_thumb.png" width=409 height=165 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image013_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Start IIS Manager -&amp;gt; Expand Sites and this is what I see&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image015_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image015_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=image015 border=0 alt=image015 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image015_thumb.png" width=570 height=94 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image015_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;All my other websites have Binding missing.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image017_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image017_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=image017 border=0 alt=image017 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image017_thumb.png" width=776 height=456 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image017_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;This is because the old applicationHost.config had the configuration information and when we uninstalled IIS, the skeleton of the new websites stayed. Hence we can see the websites but the configuration missing.&lt;/P&gt;
&lt;P&gt;I added the Bindings manually and now the websites are looking good. &lt;/P&gt;
&lt;P&gt;Let’s look at the original issue. I will browse the WCF application and it fails&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image019_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image019_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=image019 border=0 alt=image019 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image019_thumb.png" width=887 height=455 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTT.3NotFoundwhenbrowsingWCFapplicationa_E11F/image019_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;I really love IIS 7 for all the good things. The error is self-explanatory and it clearly says the handler or the MIME mapping is missing.&lt;/P&gt;
&lt;P&gt;The error code &lt;SPAN style="BACKGROUND-COLOR: rgb(244,244,244); FONT-FAMILY: consolas; COLOR: rgb(0,107,173); FONT-SIZE: 15px"&gt;0x80070032&lt;/SPAN&gt; means &lt;SPAN style="BACKGROUND-COLOR: rgb(244,244,244); FONT-FAMILY: consolas; COLOR: rgb(0,107,173); FONT-SIZE: 15px"&gt;“The request is not supported”&lt;/SPAN&gt;. IIS does not know what the file Service.svc is.&lt;/P&gt;
&lt;P&gt;Open applicationHost.config and search for .svc and it returns with nothing.&lt;/P&gt;
&lt;P&gt;Open, command prompt and go to &lt;SPAN style="BACKGROUND-COLOR: rgb(244,244,244); FONT-FAMILY: consolas; COLOR: rgb(0,107,173); FONT-SIZE: 15px"&gt;C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Run the command &lt;SPAN style="BACKGROUND-COLOR: rgb(244,244,244); FONT-FAMILY: consolas; COLOR: rgb(0,107,173); FONT-SIZE: 15px"&gt;ServiceModelReg.exe –i&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;This command acts similar to what aspnet_regiis.exe –i does. ServiceModelReg.exe –i will install Windows Communication Foundation and update scriptmaps at the Metabase root i.e. in the applicationHost.config.&lt;/P&gt;
&lt;P&gt;Open applicationHost.config and now look for .svc&lt;/P&gt;
&lt;P&gt;You will find the following handler mappings&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: thin solid; BORDER-LEFT: thin solid; BACKGROUND-COLOR: rgb(79,110,152); WIDTH: 80%; HEIGHT: auto; COLOR: rgb(255,255,255); OVERFLOW: auto; BORDER-TOP: thin solid; BORDER-RIGHT: thin solid"&gt;&lt;PRE style="FONT-FAMILY: consolas,'Courier New',courier,monospace; FONT-SIZE: 15px; CURSOR: text"&gt;&amp;lt;add name="svc-Integrated" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode" /&amp;gt;
&amp;lt;add name="svc-ISAPI-2.0" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" /&amp;gt;
&amp;lt;add name="svc-ISAPI-2.0-64" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%SystemRoot%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" /&amp;gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;Browse the page again and now Service.svc executed fine.&lt;/P&gt;
&lt;P&gt;HTH.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9592370" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vivekkum/archive/tags/General+Troubleshooting/default.aspx">General Troubleshooting</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7/default.aspx">IIS 7</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7.5/default.aspx">IIS 7.5</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/.NET/default.aspx">.NET</category></item><item><title>IIS 7/7.5 .net configuration settings using appcmd.exe and IIS Manager</title><link>http://blogs.msdn.com/vivekkum/archive/2009/05/07/iis-7-7-5-net-configuration-settings-using-appcmd-exe-and-iis-manager.aspx</link><pubDate>Thu, 07 May 2009 00:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9592120</guid><dc:creator>vivekkum</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/vivekkum/comments/9592120.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vivekkum/commentrss.aspx?PostID=9592120</wfw:commentRss><description>&lt;P&gt;Just recently I came across an issue where customer was using appcmd.exe to make changes to the Application Settings and Configuration Settings he had made using IIS Manager. I am using Application Settings for this post but it holds true for all the ASP.NET settings from IIS Manager.&lt;/P&gt;
&lt;P&gt;Application Settings using IIS Manager first at the Server Level, in our example it’s Sample&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image1_1.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image1_1.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image1 border=0 alt=image1 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image1_thumb_1.png" width=642 height=219 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image1_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;the setting gets reflected in web.config file in C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG folder.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image2 border=0 alt=image2 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image2_thumb.png" width=386 height=90 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image2_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Now, creating the new application settings on the Default Web Site, in our example it’s Sample2.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image3_1.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image3_1.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image3 border=0 alt=image3 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image3_thumb_1.png" width=642 height=218 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image3_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;An entry is created in the web.config file at the website’s home directory, in our example its C:\inetpub\wwwroot folder. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image4.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image4.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image4 border=0 alt=image4 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image4_thumb.png" width=390 height=124 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image4_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;If you create a new Application Settings at a virdir level, a new web.config will be created with the entry.&lt;/P&gt;
&lt;P&gt;Now, the customer was following the article &lt;A href="http://technet.microsoft.com/en-us/library/cc732824.aspx" target=_blank mce_href="http://technet.microsoft.com/en-us/library/cc732824.aspx"&gt;IIS 7.0: Remove an Application Setting&lt;/A&gt; and using appcmd.exe he wanted to remove the first entry i.e. Sample&lt;/P&gt;
&lt;P&gt;The command he used as per the article was: &lt;SPAN style="BACKGROUND-COLOR: rgb(244,244,244); FONT-FAMILY: consolas; COLOR: rgb(255,0,0); FONT-SIZE: 15px"&gt;appcmd.exe set config /commit:MACHINE /section:appSettings /-“[key=’Sample’,value=’1’]”&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Result: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image5.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image5.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image5 border=0 alt=image5 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image5_thumb.png" width=643 height=64 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image5_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;So, what’s going wrong?&lt;/P&gt;
&lt;P&gt;Here the command is looking for the appSettings parameter and the key in MACHINE i.e. machine.config but it can not find it and hence the error. We now know the key is created in web.config, so what is the command to make the changes in web.config?&lt;/P&gt;
&lt;P&gt;The correct command is: &lt;SPAN style="BACKGROUND-COLOR: rgb(244,244,244); FONT-FAMILY: consolas; COLOR: rgb(0,107,173); FONT-SIZE: 15px"&gt;appcmd.exe set config /commit:WEBROOT /section:appSettings /-“[key=’Sample’,value=’1’]”&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image6.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image6.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image6 border=0 alt=image6 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image6_thumb.png" width=645 height=70 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image6_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Check the IIS Manager and the entry is now removed.&lt;/P&gt;
&lt;P&gt;Similarly, to remove appSettings from Default Web Site, the command is: &lt;SPAN style="BACKGROUND-COLOR: rgb(244,244,244); FONT-FAMILY: consolas; COLOR: rgb(0,107,173); FONT-SIZE: 15px"&gt;appcmd.exe set config “Default Web Site” /section:appSettings /-“[key=’Sample2’,value=’2’]”&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image7.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image7.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image7 border=0 alt=image7 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image7_thumb.png" width=644 height=94 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image7_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;And to remove appSettings from NewVirDir i.e. the virtual directory under Default Web Site, the command is: &lt;SPAN style="BACKGROUND-COLOR: rgb(244,244,244); FONT-FAMILY: consolas; COLOR: rgb(0,107,173); FONT-SIZE: 15px"&gt;appcmd.exe set config “Default Web Site/NewVirDir” /section:appSettings /-“[key=’Sample3’,value=’3’]”&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image8.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image8.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image8 border=0 alt=image8 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image8_thumb.png" width=644 height=87 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image8_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Now, let’s create appSettings using appcmd.exe using the different variant’s and see where they get reflected&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image9.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image9.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image9 border=0 alt=image9 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image9_thumb.png" width=644 height=79 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image9_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Machine.config in C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image10.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image10.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image10 border=0 alt=image10 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image10_thumb.png" width=645 height=81 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image10_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Web.config in C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image11.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image11.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image11 border=0 alt=image11 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image11_thumb.png" width=644 height=83 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image11_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;applicationHost.config in C:\Windows\System32\inetsrv\config, since applicationHost.config is the global configuration file for IIS&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image12.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image12.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image12 border=0 alt=image12 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image12_thumb.png" width=645 height=82 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image12_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;applicationHost.config in C:\Windows\System32\inetsrv\config. The above command does not make much sense as it is not specific to Default Web Site and since it’s reflected in applicationHost.config it will apply for all web sites/virdir on the server which inherits the setting.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image13.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image13.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image13 border=0 alt=image13 src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image13_thumb.png" width=644 height=89 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/IIS77.5configurationset.exeandIISManager_D318/image13_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;web.config in C:\inetpub\wwwroot folder&lt;/P&gt;
&lt;P&gt;HTH. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9592120" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vivekkum/archive/tags/General+Troubleshooting/default.aspx">General Troubleshooting</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7/default.aspx">IIS 7</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7.5/default.aspx">IIS 7.5</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/appcmd/default.aspx">appcmd</category></item><item><title>Manually migrating websites from IIS 5.0 to IIS 6.0 (or even IIS 5.0 to IIS 5.0)</title><link>http://blogs.msdn.com/vivekkum/archive/2009/03/17/manually-migrating-websites-from-iis-5-0-to-iis-6-0.aspx</link><pubDate>Tue, 17 Mar 2009 11:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9482938</guid><dc:creator>vivekkum</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/vivekkum/comments/9482938.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vivekkum/commentrss.aspx?PostID=9482938</wfw:commentRss><description>&lt;P&gt;Just recently I came across an issue where a customer wanted to migrate websites from IIS 5 to IIS 6. The best and recommended option is to use “&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2aefc3e4-ce97-4f25-ace6-127f933a6cd2&amp;amp;DisplayLang=en" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2aefc3e4-ce97-4f25-ace6-127f933a6cd2&amp;amp;DisplayLang=en"&gt;Internet Information Services 6.0 Migration Tool&lt;/A&gt;”. But there are a few limitations in using the Migration Tool they are listed in “Before You Begin” in the IIS6MigrationToolUserGuide.doc.&lt;/P&gt;
&lt;P&gt;Here in our case we did not had network connectivity between the IIS 5 and IIS 6 servers. So, we decided to manually migrate the websites from IIS 5 to IIS 6.&lt;/P&gt;
&lt;P&gt;Steps we follow:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Take a backup of IIS 5.0 and IIS 6.0 metabase, here is how you do it in &lt;A href="http://support.microsoft.com/kb/300672" target=_blank mce_href="http://support.microsoft.com/kb/300672"&gt;IIS 5.0&lt;/A&gt; and &lt;A href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/d40b56ee-90d4-45e1-9b82-4aaea90eb02e.mspx?mfr=true" target=_blank mce_href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/d40b56ee-90d4-45e1-9b82-4aaea90eb02e.mspx?mfr=true"&gt;IIS 6.0&lt;/A&gt;. &lt;/LI&gt;
&lt;LI&gt;Remember, you need to verify that the clients are not accessing the websites. &lt;/LI&gt;
&lt;LI&gt;Copy the website contents &lt;/LI&gt;
&lt;LI&gt;Install &lt;A href="http://www.microsoft.com/downloads/thankyou.aspx?familyId=56fc92ee-a71a-4c73-b628-ade629c89499&amp;amp;displayLang=en" target=_blank mce_href="http://www.microsoft.com/downloads/thankyou.aspx?familyId=56fc92ee-a71a-4c73-b628-ade629c89499&amp;amp;displayLang=en"&gt;Internet Information Services (IIS) 6.0 Resource Kit Tools&lt;/A&gt; on IIS 6.0 server. &lt;/LI&gt;
&lt;LI&gt;Copy the Metabase.bin file from IIS 5.0 server and paste it on IIS 6.0 server. You can find the Metabase.bin in C:\WINDOWS\system32\inetsrv folder. &lt;/LI&gt;
&lt;LI&gt;Open Metabase Explorer &lt;/LI&gt;
&lt;LI&gt;Click on Metabase –&amp;gt; Import Key… &lt;/LI&gt;
&lt;LI&gt;Browse to the Metabase.bin and click Open, You will see a prompt as shown below, ignore it. Click OK 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/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/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb.png" width=458 height=121 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb.png"&gt;&lt;/A&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;This is what you will see 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_4.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/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb_1.png" width=302 height=108 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;Under Archive (Metabase.bin) expand LM –&amp;gt; W3SVC and you will see different nodes. I have 1 to 4 because I have 4 websites. &lt;/LI&gt;
&lt;LI&gt;You can verify which website you want to migrate by clicking on the node and checking the ServerComment. In my case I would like to migrate website 3 which is “Dotnet Web Site”. 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_6.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/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb_2.png" width=669 height=274 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb_2.png"&gt;&lt;/A&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;I would also like to migrate “Default Web Site” which is website 1. &lt;/LI&gt;
&lt;LI&gt;Just click on 1 under Archive (Metabase.bin) and drag and drop it under (local) –&amp;gt; W3SVC. Remember not to drop it on 1 but on W3SVC. 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_10.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_10.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/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb_4.png" width=203 height=492 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb_4.png"&gt;&lt;/A&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;You will get a prompt. If you don’t see the prompt you are not dropping the website correctly. 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_14.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_14.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/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb_6.png" width=275 height=226 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb_6.png"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;Select Replace the key. &lt;/LI&gt;
&lt;LI&gt;Open IIS MMC, (Start –&amp;gt; Run type inetmgr). You will see the virtual directories/files/folder seen in the old IIS 5 mmc now displayed in IIS 6 mmc. See that virtual app PerlEx, that’s Perl website. I need to make sure that C:\Perl\eg\PerlEx folder exists to get it working. If it happens to be in a different location change it in IIS MMC and that should be good. 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_12.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_12.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/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb_5.png" width=561 height=367 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb_5.png"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;You can drag and drop other websites as well using Metabase Explorer and they will get reflected in the IIS 6 MMC. &lt;/LI&gt;
&lt;LI&gt;Now, lets get Perl and PHP configured in IIS 6 as they won’t be configured by default. If you are using ActivePerl 5.10 as I am, the job is easy. Just install ActivePerl 5.10 and it will configure all the mappings. But if not, and you are just copy pasting the Perl folder from the old server. You will need to create the mappings for the Perl extensions. &lt;/LI&gt;
&lt;LI&gt;This is how you do it. 
&lt;OL&gt;
&lt;LI&gt;Right click on Web Site (Default Web Site in our case) &lt;/LI&gt;
&lt;LI&gt;Click Properties &lt;/LI&gt;
&lt;LI&gt;Click Home Directory tab and click the Configuration… button &lt;/LI&gt;
&lt;LI&gt;In Mappings, click Add.. &lt;/LI&gt;
&lt;LI&gt;Executable: C:\Perl\bin\PerlEx30.dll &lt;/LI&gt;
&lt;LI&gt;Extensions: .aspl &lt;/LI&gt;
&lt;LI&gt;Verbs, click Limit to: type GET,HEAD,POST &lt;/LI&gt;
&lt;LI&gt;Check “Script engine” and “Verify that file exists” &lt;/LI&gt;
&lt;LI&gt;Click OK &lt;/LI&gt;
&lt;LI&gt;Repeat steps 5 to 9 for the below extensions: &lt;/LI&gt;
&lt;LI&gt;.pl mapped to C:\Perl\bin\perl.exe "%s" %s &lt;/LI&gt;
&lt;LI&gt;.plex mapped to C:\Perl\bin\PerlEx30.dll &lt;/LI&gt;
&lt;LI&gt;.plx mapped to C:\Perl\bin\perlis.dll &lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;
&lt;LI&gt;This is how it will look like: 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_20.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_20.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/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb_9.png" width=323 height=76 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb_9.png"&gt;&lt;/A&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;Now, when you browse a page with .pl or .plex extension, it gives 404. IIS logfile will show the error code as 404 1260. The error code means “ERROR_ACCESS_DISABLED_BY_POLICY”. This is caused because of the web server extension lockdown policy. &lt;/LI&gt;
&lt;LI&gt;Click Web Service Extensions and lets create Web service extensions for Perl. 
&lt;OL&gt;
&lt;LI&gt;Click Add a new Web service extension &lt;/LI&gt;
&lt;LI&gt;Extension name: type &lt;B&gt;Perl CGI Extension&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;Click Add… &lt;/LI&gt;
&lt;LI&gt;In Path to file: type C:\Perl\bin\perl.exe "%s" %s &lt;/LI&gt;
&lt;LI&gt;Check the Set extension status to Allowed &lt;/LI&gt;
&lt;LI&gt;Click OK &lt;/LI&gt;
&lt;LI&gt;Now, create another extension with the name: &lt;B&gt;Perl ISAPI Extension&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;In Path to file: type C:\Perl\bin\perlis.dll &lt;/LI&gt;
&lt;LI&gt;Click another extension with the name: &lt;B&gt;PerlEx ISAPI Extension&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;In Path to file: type C:\Perl\bin\PerlEx30.dll &lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;
&lt;LI&gt;We created three web service extensions as they are specific to their functionality. One is CGI, the other is for the ISAPI’s Perl and PerlEx respectively. So, in case if you are interested in serving only .plex or .aspl extensions create and enable only the respective ISAPI mapping and its Web Service extension. 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_28.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_28.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/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb_13.png" width=257 height=56 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb_13.png"&gt;&lt;/A&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;Browse the Perl website and it works fine. &lt;/LI&gt;
&lt;LI&gt;Now, lets create PHP Mapping and Web Service extension. 
&lt;OL&gt;
&lt;LI&gt;For Application Mapping 
&lt;OL&gt;
&lt;LI&gt;Right click on Web Site (Php Web Site in our case) &lt;/LI&gt;
&lt;LI&gt;Click Properties &lt;/LI&gt;
&lt;LI&gt;Click Home Directory tab and click Configuration… button &lt;/LI&gt;
&lt;LI&gt;In Mappings, click Add.. &lt;/LI&gt;
&lt;LI&gt;Executable: C:\PHP\php5isapi.dll &lt;/LI&gt;
&lt;LI&gt;Extensions: .php &lt;/LI&gt;
&lt;LI&gt;Verbs, click All verbs &lt;/LI&gt;
&lt;LI&gt;Check “Script engine” and “Verify that file exists” &lt;/LI&gt;
&lt;LI&gt;Click OK &lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;
&lt;LI&gt;For Web Service Extension 
&lt;OL&gt;
&lt;LI&gt;Click Add a new Web service extension &lt;/LI&gt;
&lt;LI&gt;Extension name: type &lt;B&gt;PHP&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;Click Add… &lt;/LI&gt;
&lt;LI&gt;In Path to file: type C:\PHP\php5isapi.dll &lt;/LI&gt;
&lt;LI&gt;Check the Set extension status to Allowed &lt;/LI&gt;
&lt;LI&gt;Click OK &lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;
&lt;LI&gt;Browse, .php website and that works fine. &lt;/LI&gt;
&lt;LI&gt;Now, for my “Dotnet Web Site”.&lt;I&gt;&amp;nbsp;&lt;/I&gt;I was lucky to have my Windows 2000 with a %SystemRoot% folder as WINDOWS. Sometimes you will see WINNT. &lt;/LI&gt;
&lt;LI&gt;My “Dotnet Web Site” on IIS 5.0 is using .net 2.0 and I don’t have .net 2.0 installed on Windows Server 2003. &lt;/LI&gt;
&lt;LI&gt;Check out the Application Mapping for the website 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_30.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_30.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/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb_14.png" width=321 height=57 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/MigratingwebsitesfromIIS5.0toIIS6.0_CFD8/image_thumb_14.png"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;So, if your application requires .net 2.0 you need to install .net 2.0 on your machine. If the application is not specific to .net 2.0 and if it will work fine on .net 1.1 then just run “&lt;SPAN style="BACKGROUND-COLOR: rgb(244,244,244); FONT-FAMILY: consolas; COLOR: rgb(0,107,173); FONT-SIZE: 15px"&gt;C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322&amp;gt;aspnet_regiis.exe -r&lt;/SPAN&gt;” and it will remap all the ASP.NET scripts with .net 1.1 version. &lt;/LI&gt;
&lt;LI&gt;I had to install .net 2.0 to get my application running. &lt;/LI&gt;&lt;/OL&gt;
&lt;P mce_keep="true"&gt;Incase if you are planning to restore old IIS 5.0 metabase on&amp;nbsp;a newly installed Windows Server 2000 IIS 5.0 server. The steps above can help you move the websites from old metabase to&amp;nbsp;the new IIS 5 server. You can either install IIS 6 Resource Kit or just copy the Metabase Explorer folder i.e. C:\Program Files\IIS Resources\Metabase Explorer to the IIS 5 server.&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: red; FONT-WEIGHT: bold"&gt;NOTE: Please play around with this in your test environment before you use it on your production servers. Leverage Microsoft PSS if you have complexities in your existing websites which you need to migrate.&lt;/SPAN&gt; &lt;BR&gt;&lt;/P&gt;&lt;SPAN style="COLOR: red; FONT-WEIGHT: bold"&gt;&lt;/SPAN&gt;
&lt;P&gt;HTH&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9482938" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vivekkum/archive/tags/General+Troubleshooting/default.aspx">General Troubleshooting</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/Metabase/default.aspx">Metabase</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+6/default.aspx">IIS 6</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+5/default.aspx">IIS 5</category></item><item><title>Binding Issue: WWW Service did not register the URL prefix http://*:80</title><link>http://blogs.msdn.com/vivekkum/archive/2009/03/05/binding-issue-www-service-did-not-register-the-url-prefix-http-80.aspx</link><pubDate>Thu, 05 Mar 2009 15:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9459639</guid><dc:creator>vivekkum</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/vivekkum/comments/9459639.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vivekkum/commentrss.aspx?PostID=9459639</wfw:commentRss><description>&lt;P&gt;Sometime back I was working on an incident with a customer who was facing an issue when trying to access his application on Windows Server 2008. I will reproduce the issue using Apache for everyone’s benefit. &lt;/P&gt;
&lt;P&gt;If you have a server that has some kind of monitoring tool which is web based or some application which needs port 80 or port 443, then you can face this issue. &lt;/P&gt;
&lt;P&gt;Scenario:&lt;/P&gt;
&lt;P&gt;I am installing Apache 2.2.11 on my Windows Server 2008 machine which has IIS 7 installed on it. So, wondering why I am trying to install Apache on Windows Server 2008, simply because it’s a web server. &lt;/P&gt;
&lt;P&gt;Checkout the screenshot below. Apache will be installed on Port 80 (default setting). Sometimes some application will silently get installed on your machine on port 80.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_4.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/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_1.png" width=510 height=387 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_1.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;After sometime, I get the following error:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_6.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/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_2.png" width=656 height=146 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Checked the Event Viewer and I see the Event as shown below. Looks like Apache wanted to bind itself on 0.0.0.0:80 and fails as it does not have access.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_8.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_8.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/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_3.png" width=563 height=224 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Opened Command prompt as an Administrator and ran “&lt;SPAN style="BACKGROUND-COLOR: rgb(244,244,244); FONT-FAMILY: consolas; COLOR: rgb(0,107,173); FONT-SIZE: 15px"&gt;netstat –ano&lt;/SPAN&gt;”&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_10.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_10.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/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_4.png" width=636 height=103 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_4.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;I see port 80 is controlled by PID 4 i.e System. &lt;/P&gt;
&lt;P&gt;Now, stopped IIS Services by firing “&lt;SPAN style="BACKGROUND-COLOR: rgb(244,244,244); FONT-FAMILY: consolas; COLOR: rgb(0,107,173); FONT-SIZE: 15px"&gt;iisreset /stop&lt;/SPAN&gt;”. &lt;/P&gt;
&lt;P&gt;Started Apache 2.2 service from Services.msc and fired “&lt;SPAN style="BACKGROUND-COLOR: rgb(244,244,244); FONT-FAMILY: consolas; COLOR: rgb(0,107,173); FONT-SIZE: 15px"&gt;iisreset&lt;/SPAN&gt;” again.&lt;/P&gt;
&lt;P&gt;Opened, IIS Manager and I see all websites on port 80 stopped.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_16.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_16.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/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_7.png" width=389 height=62 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_7.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Check the Event Viewer&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_18.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_18.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/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_8.png" width=548 height=224 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_8.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_20.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_20.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/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_9.png" width=543 height=224 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_9.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;OR&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_22.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_22.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/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_10.png" width=543 height=223 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_10.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Run “&lt;SPAN style="BACKGROUND-COLOR: rgb(244,244,244); FONT-FAMILY: consolas; COLOR: rgb(0,107,173); FONT-SIZE: 15px"&gt;netstat –ano&lt;/SPAN&gt;” and this is what I see:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_14.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_14.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/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_6.png" width=635 height=98 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_6.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;PID 1256 or Apache HTTP Server has control over port 80 and hence the issue.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_24.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_24.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/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_11.png" width=484 height=37 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_11.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;So what is the issue, checkout the article: &lt;A href="http://support.microsoft.com/kb/890015" target=_blank mce_href="http://support.microsoft.com/kb/890015"&gt;You receive a "The process cannot access the file because it is being used by another process" error message when you try to start a Web site in the Internet Information Services MMC snap-in&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;&amp;lt;snip&amp;gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;Typically, this issue occurs when one or more of the following conditions are true:&lt;/I&gt;&lt;/P&gt;&lt;I&gt;
&lt;UL&gt;
&lt;LI&gt;Another process is using port 80 or port 443 on the computer that is running IIS. &lt;B&gt;By default, IIS uses port 80 as the default TCP port and port 443 for Secure Sockets Layer (SSL)&lt;/B&gt;. &lt;/LI&gt;
&lt;LI&gt;The ListenOnlyList registry subkey is not configured correctly on the computer that’s running IIS. &lt;/LI&gt;&lt;/UL&gt;&lt;/I&gt;
&lt;P&gt;&amp;lt;/snip&amp;gt;&lt;/P&gt;
&lt;P&gt;Solution:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Run Apache on a different port i.e. other than port 80 &lt;/LI&gt;
&lt;LI&gt;Get a new IP Address and configure IIS to run on a particular IP Address by configuring ListenOnlyList &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;On Windows Server 2008, you can use netsh to add the ListenOnlyList.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_28.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_28.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/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_13.png" width=418 height=176 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_13.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Verifying the same in the registry.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_26.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_26.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/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_12.png" width=671 height=123 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/8a8ad92be53a_DF4A/image_thumb_12.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;HTH.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9459639" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vivekkum/archive/tags/General+Troubleshooting/default.aspx">General Troubleshooting</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+6/default.aspx">IIS 6</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7/default.aspx">IIS 7</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7.5/default.aspx">IIS 7.5</category></item><item><title>401.1 – Unauthorized, using Anonymous access (IUSR account)</title><link>http://blogs.msdn.com/vivekkum/archive/2009/02/26/401-1-unauthorized-using-anonymous-access-iusr-account.aspx</link><pubDate>Thu, 26 Feb 2009 14:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9446402</guid><dc:creator>vivekkum</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/vivekkum/comments/9446402.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vivekkum/commentrss.aspx?PostID=9446402</wfw:commentRss><description>&lt;P&gt;Just recently I was working on an issue were the customer was getting 401.1 – Unauthorized: Access is denied due to invalid credentials. &lt;/P&gt;
&lt;P&gt;The authentication method used on the website was Anonymous access. I checked the Default Web Site and that is working fine. The authentication method on the Default Web Site is Anonymous access and Integrated Windows Authentication selected.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/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/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_thumb.png" width=374 height=448 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;So with only Anonymous access the website seems to be failing with 401.1 – Unauthorized.&lt;/P&gt;
&lt;P&gt;Let’s see what’s wrong with IUSR account.&lt;/P&gt;
&lt;P&gt;Let’s search Metabase.xml for all occurrence of Anonymous account.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_4.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/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_thumb_1.png" width=587 height=141 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;command: &lt;SPAN style="BACKGROUND-COLOR: #f4f4f4; FONT-FAMILY: consolas; COLOR: #006bad; FONT-SIZE: 15px"&gt;cscript.exe adsutil.vbs find anonymoususername&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;This shows we have anonymoususername configured at the global level.&lt;/P&gt;
&lt;P&gt;If you had Anonymous user configured on different websites or at different levels in a website. You will see something like this&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_6.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/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_thumb_2.png" width=592 height=131 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Let’s see what is the Anonymous user account we have on W3SVC&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_8.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_8.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/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_thumb_3.png" width=618 height=104 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;command: &lt;SPAN style="BACKGROUND-COLOR: #f4f4f4; FONT-FAMILY: consolas; COLOR: #006bad; FONT-SIZE: 15px"&gt;cscript.exe adsutil.vbs get W3SVC/anonymoususername&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;You can repeat the above command to check Anonymous account on different websites and levels. For example&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_10.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_10.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/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_thumb_4.png" width=642 height=323 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_thumb_4.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Let us now check the occurrence of Anonymous Password. Here you see Anonymous password configured on different websites and at different levels.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_12.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_12.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/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_thumb_5.png" width=595 height=168 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_thumb_5.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;command: &lt;SPAN style="BACKGROUND-COLOR: #f4f4f4; FONT-FAMILY: consolas; COLOR: #006bad; FONT-SIZE: 15px"&gt;cscript.exe adsutil.vbs find W3SVC/anonymoususerpass&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;For me, I am concerned about the IUSR account occurrence in the Metabase as the other’s are working fine.&lt;/P&gt;
&lt;P&gt;I am going to remove all anonymoususerpass occurrence of IUSR except the W3SVC&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_14.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_14.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/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_thumb_6.png" width=645 height=131 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/401.1UnauthorizedusingAnonymousaccess_DB05/image_thumb_6.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;command: &lt;SPAN style="BACKGROUND-COLOR: #f4f4f4; FONT-FAMILY: consolas; COLOR: #006bad; FONT-SIZE: 15px"&gt;cscript.exe adsutil.vbs delete W3SVC/1/ROOT/anonymoususerpass&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Verify that you have IUSR only on W3SVC and if there are other websites make sure they have the correct password set.&lt;/P&gt;
&lt;P&gt;Now, you can synchronize the anonymoususerpass by following &lt;A href="http://support.microsoft.com/kb/941201" target=_blank mce_href="http://support.microsoft.com/kb/941201"&gt;Step 2: Re-synchronize the passwords&lt;/A&gt; from the KB article.&lt;/P&gt;
&lt;P&gt;HTH&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9446402" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vivekkum/archive/tags/General+Troubleshooting/default.aspx">General Troubleshooting</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/Metabase/default.aspx">Metabase</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+6/default.aspx">IIS 6</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+5/default.aspx">IIS 5</category></item><item><title>Rename files using PowerShell ‘a one liner’</title><link>http://blogs.msdn.com/vivekkum/archive/2009/02/25/rename-files-using-powershell-a-one-liner.aspx</link><pubDate>Wed, 25 Feb 2009 15:48:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9444016</guid><dc:creator>vivekkum</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/vivekkum/comments/9444016.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vivekkum/commentrss.aspx?PostID=9444016</wfw:commentRss><description>&lt;p&gt;Back to PowerShell today!&lt;/p&gt;  &lt;p&gt;I had few files to be renamed and they were about 500 odd of them. Renaming each and every file by hand would be a real pain. I thought of writing a PowerShell one liner to get this thing done and to my surprise it did my job in a few seconds.&lt;/p&gt;  &lt;p&gt;Here is the scenario:&lt;/p&gt;  &lt;p&gt;I have files with names like&lt;/p&gt;  &lt;p&gt;text1.txt    &lt;br /&gt;text2.txt     &lt;br /&gt;text3.txt&lt;/p&gt;  &lt;p&gt;I don’t like the naming format and wanted them in “Number(dot)(space)(FileName)(Extension)” i.e.&lt;/p&gt;  &lt;p&gt;1. text.txt    &lt;br /&gt;2. text.txt and so on….&lt;/p&gt;  &lt;p&gt;Here is a cool simple script to do this dirty job:&lt;/p&gt; &lt;span style="background-color: #f4f4f4; font-family: consolas; color: #006bad; font-size: 15px"&gt;Get-ChildItem *.txt | Rename-Item -NewName { $_.name -replace 'text(\d+)', '$1. text'}&lt;/span&gt;   &lt;p&gt;HTH&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9444016" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vivekkum/archive/tags/PowerShell/default.aspx">PowerShell</category></item><item><title>*Unknown* status for ISAPI Filter</title><link>http://blogs.msdn.com/vivekkum/archive/2009/02/20/unknown-status-for-isapi-filter.aspx</link><pubDate>Fri, 20 Feb 2009 18:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9436113</guid><dc:creator>vivekkum</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/vivekkum/comments/9436113.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vivekkum/commentrss.aspx?PostID=9436113</wfw:commentRss><description>&lt;P&gt;Hello All,&lt;/P&gt;
&lt;P&gt;I have seen this issue on IIS 6 a number of times and thought of sharing it with all.&lt;/P&gt;
&lt;P&gt;How many times have you seen the below screenshot in the ISAPI Filter tab in IIS MMC ?&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/UnknownstatusforISAPIFilter_1263F/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/UnknownstatusforISAPIFilter_1263F/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/UnknownstatusforISAPIFilter_1263F/image_thumb.png" width=474 height=459 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/UnknownstatusforISAPIFilter_1263F/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Well I reproduced this issue with UrlScan for everybody's benefit but this can happen to any ISAPI Filter. I know I got rid of this error as soon as I requested the web page but most of the times the request will fail.&lt;/P&gt;
&lt;P&gt;There are a few key elements for every ISAPI Filter and the two we are concerned with are FilterFlags and FilterState. So if you install an application and that application installs an ISAPI Filter on IIS which shows *Unknown* in IIS MMC., then there is something wrong on registering that ISAPI with IIS and hence the error.&lt;/P&gt;
&lt;P&gt;Here is the MSDN article which explains these two parameters &lt;A href="http://msdn.microsoft.com/en-us/library/ms525825.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/ms525825.aspx"&gt;FilterFlags&lt;/A&gt; and &lt;A href="http://msdn.microsoft.com/en-us/library/ms524759.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/ms524759.aspx"&gt;FilterState&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Let’s us see Metabase.xml for the above issue&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/UnknownstatusforISAPIFilter_1263F/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/UnknownstatusforISAPIFilter_1263F/image_6.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/UnknownstatusforISAPIFilter_1263F/image_thumb_2.png" width=621 height=113 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/UnknownstatusforISAPIFilter_1263F/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;See those parameters, they are not set correctly, infact sometimes (as I have seen) the parameters are missing.&lt;/P&gt;
&lt;P&gt;So, How do you resolve such an issue ?&lt;/P&gt;
&lt;P&gt;Firstly, we need to understand what function the ISAPI Filter will perform. If you are not aware of the same contact the vendor.&lt;/P&gt;
&lt;P&gt;In our case we know UrlScan will run under High Priority and will do the following “NotifyPreProcHeaders | NotifySendResponse | NotifySendRawData | NotifyEndOfRequest | NotifyEndOfNetSession | NotifyOrderHigh”. The Flags are explained very well in the FilterFlags document on MSDN.&lt;/P&gt;
&lt;P&gt;So what do we do, just add the above text for FilterFlags and change the FilterState to ”1”.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/UnknownstatusforISAPIFilter_1263F/image_10.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/UnknownstatusforISAPIFilter_1263F/image_10.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/UnknownstatusforISAPIFilter_1263F/image_thumb_4.png" width=671 height=95 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/UnknownstatusforISAPIFilter_1263F/image_thumb_4.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Remember to restart IIS after you make the above changes.&lt;/P&gt;
&lt;P&gt;Here is what it looks like in Metabase Explorer&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/UnknownstatusforISAPIFilter_1263F/image_12.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/UnknownstatusforISAPIFilter_1263F/image_12.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/UnknownstatusforISAPIFilter_1263F/image_thumb_5.png" width=797 height=260 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/UnknownstatusforISAPIFilter_1263F/image_thumb_5.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Check that Data value “542144” that’s nothing but the total of Bitmask used i.e. “NotifyPreProcHeaders | NotifySendResponse | NotifySendRawData | NotifyEndOfRequest | NotifyEndOfNetSession | NotifyOrderHigh”.&lt;/P&gt;
&lt;P style="COLOR: red"&gt;&lt;B&gt;NOTE: &lt;/B&gt;&lt;/P&gt;
&lt;P style="COLOR: red"&gt;&lt;B&gt;Please keep this in mind &lt;I&gt;&amp;lt;MSDN Snip&amp;gt; "Because this property is internally configured by IIS, you should consider it to be read-only. Do not configure this property." &amp;lt;/MSDN Snip&amp;gt;&lt;/I&gt;.&lt;/B&gt; &lt;/P&gt;
&lt;P&gt;HTH&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9436113" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vivekkum/archive/tags/Inside+IIS/default.aspx">Inside IIS</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/Metabase/default.aspx">Metabase</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+6/default.aspx">IIS 6</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+5/default.aspx">IIS 5</category></item><item><title>HTTP COMPRESSION in IIS 6 and IIS 7 using Service Account</title><link>http://blogs.msdn.com/vivekkum/archive/2009/02/18/http-compression-in-iis-6-and-iis-7-using-service-account.aspx</link><pubDate>Wed, 18 Feb 2009 19:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9431728</guid><dc:creator>vivekkum</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/vivekkum/comments/9431728.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vivekkum/commentrss.aspx?PostID=9431728</wfw:commentRss><description>&lt;P&gt;I have come across few issues on HTTP Compression in IIS 6 and thought I will quickly post it across for everyone’s benefit.&lt;/P&gt;
&lt;P&gt;Enterprises prefer to compress their Static and Dynamic web content to save bandwidth. There are articles on how to enable compression and frankly it’s pretty simple. Here is the UI for enabling Compression in IIS 6 and IIS 7:&lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0 width=549&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=547&gt;&lt;B&gt;IIS 6.0&lt;/B&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=547&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_8.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_8.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_thumb_3.png" width=540 height=374 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=547&gt;Here is an article for IIS 6: &lt;A href="http://technet.microsoft.com/en-us/library/cc782942.aspx" target=_blank mce_href="http://technet.microsoft.com/en-us/library/cc782942.aspx"&gt;Enabling HTTP Compression&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=547&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=547&gt;&lt;B&gt;IIS 7.0&lt;/B&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=547&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_4.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_thumb_1.png" width=499 height=390 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=547&gt;Here is an article for IIS 7: &lt;A href="http://technet.microsoft.com/en-us/library/cc753681.aspx" target=_blank mce_href="http://technet.microsoft.com/en-us/library/cc753681.aspx"&gt;IIS 7.0: Enable HTTP Compression of Dynamic Content&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;The article works fine for default IIS 6 configuration. But as soon as you make some change like using a Service Account (Domain Account) for Application Pool the compression fails.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_5.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_5.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 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/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_thumb.png" width=417 height=182 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;How do I check if compression is working?, well download a Web Debugger like &lt;A href="http://www.fiddlertool.com/dl/Fiddler2Setup.exe" target=_blank mce_href="http://www.fiddlertool.com/dl/Fiddler2Setup.exe"&gt;Fiddler&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Let us walk through the process.&lt;/P&gt;
&lt;P&gt;I have a website using DefaultAppPool and the AppPool is configured to use the Domain Account (CORP\w2k3service).&lt;/P&gt;
&lt;P&gt;I have added CORP\w2k3service in the IIS_WPG group.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_9.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_9.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 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/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_thumb_2.png" width=409 height=285 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;I am browsing my website as &lt;A href="http://w2k3website.corp.contoso.com/" mce_href="http://w2k3website.corp.contoso.com"&gt;http://w2k3website.corp.contoso.com&lt;/A&gt; and the URL is a Host(A) Record entry in DNS. &lt;/P&gt;
&lt;P&gt;I have added the HTTP SPN for the Service Account (CORP\w2k3service)&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_11.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_11.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 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/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_thumb_4.png" width=644 height=114 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_thumb_4.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I browse the website and it works just fine.&lt;/P&gt;
&lt;P&gt;I enable HTTP Compression as mentioned in the article above and to verify I ran Fiddler. Here is what I see&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_13.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_13.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 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/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_thumb_5.png" width=709 height=422 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_thumb_5.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;For the request &lt;A href="http://w2k3website.corp.contoso.com/" mce_href="http://w2k3website.corp.contoso.com"&gt;http://w2k3website.corp.contoso.com&lt;/A&gt;, Fiddler shows HTTP Compression as “No Compression” odd isn’t it.&lt;/P&gt;
&lt;P&gt;Let us check Metabase.xml&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_17.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_17.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 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/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_thumb_7.png" width=603 height=565 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_thumb_7.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Looks good to me.&lt;/P&gt;
&lt;P&gt;Now, follow the steps when you have AppPool using Service Account.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Add the user account to the IIS_WPG group &lt;/LI&gt;
&lt;LI&gt;Also the user account must have permission on the website folder &lt;/LI&gt;
&lt;LI&gt;Also the user account must have following permission in the metabase (use Metabase Explorer from IIS Resource Kit tools): &lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;LM –&amp;gt; Read &lt;/LI&gt;
&lt;LI&gt;W3SVC –&amp;gt; Read &lt;/LI&gt;
&lt;LI&gt;AppPools -&amp;gt; Query Unsecure Property (Special Permission) &lt;/LI&gt;
&lt;LI&gt;&lt;I&gt;AnyNewAppPool -&amp;gt; QueryUnsecure Property (Special Permission)&lt;/I&gt; &lt;/LI&gt;
&lt;LI&gt;Filters -&amp;gt; Read and Write &lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Compression –&amp;gt; deflate (Read and Write)&lt;/LI&gt;
&lt;LI&gt;Compression –&amp;gt; gzip (Read and Write)&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;LI&gt;Restart IIS &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Let us verify with Fiddler again&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_19.png" mce_href="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_19.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_thumb_8.png" width=707 height=436 mce_src="http://blogs.msdn.com/blogfiles/vivekkum/WindowsLiveWriter/HTTPCOMPRESSIONinIIS6andIIS7_1245B/image_thumb_8.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Perfect.&lt;/P&gt;
&lt;P&gt;Good thing here is we don’t have to worry about the Service Account Permission in IIS 7. &lt;/P&gt;
&lt;P&gt;HTH&lt;/P&gt;
&lt;P&gt;Chao for now.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9431728" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vivekkum/archive/tags/HTTPCompression/default.aspx">HTTPCompression</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/Metabase/default.aspx">Metabase</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+6/default.aspx">IIS 6</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7/default.aspx">IIS 7</category><category domain="http://blogs.msdn.com/vivekkum/archive/tags/IIS+7.5/default.aspx">IIS 7.5</category></item></channel></rss>