<?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>Care, Share and Grow! : IIS 7.0</title><link>http://blogs.msdn.com/saurabh_singh/archive/tags/IIS+7.0/default.aspx</link><description>Tags: IIS 7.0</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Considering hosting Web based services on IIS 7.0?</title><link>http://blogs.msdn.com/saurabh_singh/archive/2009/03/10/considering-hosting-web-based-services-on-iis-7-0.aspx</link><pubDate>Tue, 10 Mar 2009 19:35:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9469280</guid><dc:creator>Saurabh Singh</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/saurabh_singh/comments/9469280.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh_singh/commentrss.aspx?PostID=9469280</wfw:commentRss><wfw:comment>http://blogs.msdn.com/saurabh_singh/rsscomments.aspx?PostID=9469280</wfw:comment><description>&lt;p&gt;If you are contemplating to move over (upgrade) to IIS 7.0 from your existing Web hosting on either IIS 5.0 or 6.0 this is a very useful Technical White Paper link. It talks about various aspects of improvements in IIS 7.0 dealing with Management, Performance, Extensibility, Security and Deployment.&lt;/p&gt; &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc500981.aspx" target="_blank"&gt;Migrating a Large, High-Volume Web Site to Internet Information Services 7.0&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Cheers!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9469280" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/IIS+7.0/default.aspx">IIS 7.0</category><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category></item><item><title>Service Principal Name (SPN) checklist for Kerberos authentication with IIS 7.0</title><link>http://blogs.msdn.com/saurabh_singh/archive/2008/12/25/service-principal-name-spn-checklist-for-kerberos-authentication-with-iis-7-0.aspx</link><pubDate>Thu, 25 Dec 2008 04:01:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9252291</guid><dc:creator>Saurabh Singh</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/saurabh_singh/comments/9252291.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh_singh/commentrss.aspx?PostID=9252291</wfw:commentRss><wfw:comment>http://blogs.msdn.com/saurabh_singh/rsscomments.aspx?PostID=9252291</wfw:comment><description>&lt;p&gt;In continuation to one of my earlier &lt;a href="http://blogs.msdn.com/saurabh_singh/archive/2007/01/29/kerberos-troubleshooting-from-iis-perspective.aspx" target="_blank"&gt;posts&lt;/a&gt; which focused on IIS 6.0 this post is more about the confusion that may arise around SPNs for setting up Kerberos authentication in IIS 7.0. IIS 7.0 has a new Kernel-mode authentication feature using which the ticket for the requested service is decrypted using Machine account (Local system) of the IIS server. It no longer depends upon the application pool Identity for this purpose by default and in turn improves the performance.  &lt;p&gt;Here is how it looks like.  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/KerberostroubleshootingfromIISperspect.0_7F3B/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="207" alt="image" src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/KerberostroubleshootingfromIISperspect.0_7F3B/image_thumb.png" width="534" border="0"&gt;&lt;/a&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/KerberostroubleshootingfromIISperspect.0_7F3B/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="306" alt="image" src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/KerberostroubleshootingfromIISperspect.0_7F3B/image_thumb_1.png" width="456" border="0"&gt;&lt;/a&gt;  &lt;p&gt;So what does this mean?  &lt;p&gt;You no longer need to worry about the correlation between HTTP SPNs and the Application pool Identity that was required in the earlier version i.e. IIS 6.0. But that's not blindly true. There has been some confusion whether we don't have to care at all about SPNs or may have to depending upon the settings. Here is a checklist to give more clarity for different scenarios that you may fall under:  &lt;p&gt;&lt;strong&gt;SCENARIO 1a&lt;/strong&gt;&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="678" border="2"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;IIS 7.0 Web Site/Application&lt;/td&gt; &lt;td valign="top" width="469"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;Authentication&lt;/td&gt; &lt;td valign="top" width="469"&gt;Integrated Windows authentication&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;Application Pool Identity&lt;/td&gt; &lt;td valign="top" width="469"&gt;NETWORK SERVICE&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;Kernel-Mode authentication&lt;/td&gt; &lt;td valign="top" width="469"&gt;Enabled (&amp;lt;attribute name="useKernelMode" type="bool" defaultValue="true" /&amp;gt; in the ApplicationHost.config file)&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;Site URL&lt;/td&gt; &lt;td valign="top" width="469"&gt;Accessed with the NetBIOS name, like &lt;font size="1"&gt;http://&lt;em&gt;&amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;&amp;gt;&lt;/em&gt;/Default.aspx&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;SPNs will be required ONLY for the IIS machine account: &lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="678" border="2"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="674"&gt;HOST/&amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;&amp;gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="674"&gt;HOST/&amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;.fully-qualified-domainname&amp;gt; for e.g. HOST/myIISserver.mydomain.com&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;em&gt;&lt;font color="#804000"&gt;&lt;strong&gt;***Note&lt;/strong&gt;: By default HOST/&amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;&amp;gt; and HOST/&amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;.fully-qualified-name&amp;gt; is already added for the machine account when a machine is added to a domain and HTTP forms a part of HOST. So you may not have to do anything special here for SPNs. Everything should be set by default.&lt;/font&gt;&lt;/em&gt;  &lt;p&gt;You can check the set of existing SPNs for the machine account by running the following command:  &lt;p&gt;&amp;gt; Setspn.exe -L &lt;em&gt;&amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;&amp;gt;&lt;/em&gt; or directly using a Snap-in like &lt;a href="http://technet.microsoft.com/en-us/library/cc773354.aspx" target="_blank"&gt;Adsiedit.msc&lt;/a&gt;.  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp; &lt;p&gt;&lt;strong&gt;SCENARIO 1b&lt;/strong&gt;&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="678" border="2"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;IIS 7.0 Web Site/Application&lt;/td&gt; &lt;td valign="top" width="469"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;Authentication&lt;/td&gt; &lt;td valign="top" width="469"&gt;Integrated Windows authentication&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;Application Pool Identity&lt;/td&gt; &lt;td valign="top" width="469"&gt;Custom account for e.g. Domain1\Username1&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;Kernel-Mode authentication&lt;/td&gt; &lt;td valign="top" width="469"&gt;Enabled (&amp;lt;attribute name="useKernelMode" type="bool" defaultValue="true" /&amp;gt; in the ApplicationHost.config file)&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;Site URL&lt;/td&gt; &lt;td valign="top" width="469"&gt;Accessed with the NetBIOS name, like &lt;font size="1"&gt;http://&lt;em&gt;&amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;&amp;gt;&lt;/em&gt;/Default.aspx&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;The SPN requirements remain the same as above. You don't have to add SPNs like http/&lt;em&gt;&amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;&amp;gt;&lt;/em&gt; for the Domain1\Username1 unlike in IIS 6.0 (where we had to add an SPN of the form http/&amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;&amp;gt; for the Application Pool identity). &lt;/p&gt; &lt;p&gt;SPNs will be required ONLY for the IIS machine account:&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="678" border="2"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="674"&gt;HOST/&amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;&amp;gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="674"&gt;HOST/&amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;.fully-qualified-domainname&amp;gt; for e.g. HOST/myIISserver.mydomain.com&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;em&gt;&lt;font color="#804000"&gt;&lt;strong&gt;***Note&lt;/strong&gt;: By default HOST/&amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;&amp;gt; and HOST/&amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;.fully-qualified-name&amp;gt; is already added for the machine account when a machine is added to a domain and HTTP forms a part of HOST. So you may not have to do anything special here for SPNs. Everything should be set by default.&lt;/font&gt;&lt;/em&gt;  &lt;p&gt;You can check the set of existing SPNs for the machine account by running the following command:  &lt;p&gt;&amp;gt; Setspn.exe -L &lt;em&gt;&amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;&amp;gt;&lt;/em&gt; or directly using Snap-in like &lt;a href="http://technet.microsoft.com/en-us/library/cc773354.aspx" target="_blank"&gt;Adsiedit.msc&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;SCENARIO 2a&lt;/strong&gt;&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="678" border="2"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;IIS 7.0 Web Site/Application&lt;/td&gt; &lt;td valign="top" width="469"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;Authentication&lt;/td&gt; &lt;td valign="top" width="469"&gt;Integrated Windows authentication&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;Application Pool Identity&lt;/td&gt; &lt;td valign="top" width="469"&gt;NETWORK SERVICE&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;Kernel-Mode authentication&lt;/td&gt; &lt;td valign="top" width="469"&gt;Enabled (&amp;lt;attribute name="useKernelMode" type="bool" defaultValue="true" /&amp;gt; in the ApplicationHost.config file)&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;Site URL&lt;/td&gt; &lt;td valign="top" width="469"&gt;Accessed with a Custom Host name, like &lt;font size="1"&gt;http://&lt;em&gt;www.mysite.com&lt;/em&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br&gt;SPNs will be required ONLY for the &lt;em&gt;IIS machine account&lt;/em&gt; in the following format: &lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="400" border="2"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="400"&gt;HTTP/&lt;em&gt;&amp;lt;site-custom-name&amp;gt;&lt;/em&gt; for e.g. HTTP/&lt;em&gt;www.mysite.com&lt;/em&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;You can add an SPN using Setspn.exe like  &lt;p&gt;&amp;gt; Setspn -a &lt;strong&gt;http/&lt;em&gt;&amp;lt;site-custom-name&amp;gt;&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;&amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;&amp;gt;&lt;/strong&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt;where &amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;&amp;gt; is the IIS machine account and &lt;em&gt;&amp;lt;site-custom-name&amp;gt;&lt;/em&gt; is the custom host/host header name for the Web Site URL.&lt;/p&gt; &lt;p&gt;e.g. &amp;gt; Setspn -a http/www.mysite.com &amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&amp;gt;&lt;/em&gt;&lt;br&gt;&lt;font size="1"&gt;*The command is NOT case sensitive&lt;/font&gt; &lt;/p&gt; &lt;p&gt;You can check the existing set of SPNs for the machine account by running the following command:  &lt;p&gt;&amp;gt; Setspn.exe -L &amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;&amp;gt;  &lt;p&gt;&amp;nbsp; &lt;p&gt;&lt;strong&gt;SCENARIO 2b&lt;/strong&gt;&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="678" border="2"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;IIS 7.0 Web Site/Application&lt;/td&gt; &lt;td valign="top" width="469"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;Authentication&lt;/td&gt; &lt;td valign="top" width="469"&gt;Integrated Windows authentication&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;Application Pool Identity&lt;/td&gt; &lt;td valign="top" width="469"&gt;Custom account for e.g. Domain1\Username1&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;Kernel-Mode authentication&lt;/td&gt; &lt;td valign="top" width="469"&gt;Enabled (&amp;lt;attribute name="useKernelMode" type="bool" defaultValue="true" /&amp;gt; in the ApplicationHost.config file)&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="205"&gt;Site URL&lt;/td&gt; &lt;td valign="top" width="469"&gt;Accessed with a Custom host/Host header name, like &lt;font size="1"&gt;http://&lt;em&gt;www.mysite.com&lt;/em&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;br&gt;SPNs will be required ONLY for the IIS machine account and NOT for Domain1\Username1 account unlike in IIS 6.0.&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="400" border="2"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="400"&gt;HTTP/&lt;em&gt;&amp;lt;site-custom-name&amp;gt;&lt;/em&gt; for e.g. HTTP/&lt;em&gt;www.mysite.com&lt;/em&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;You can add an SPN using Setspn.exe like  &lt;p&gt;&amp;gt; Setspn -a &lt;strong&gt;&lt;em&gt;http/&amp;lt;site-custom-name&amp;gt;&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;&amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;&amp;gt;&lt;/strong&gt; where &amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;&amp;gt; is the IIS machine account and &lt;em&gt;&amp;lt;site-custom-name&amp;gt;&lt;/em&gt; is the custom host/host header name for the Web Site URL.&lt;/p&gt; &lt;p&gt;e.g. &amp;gt; Setspn -a http/www.mysite.com &amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&amp;gt;&lt;/em&gt;&lt;br&gt;&lt;font size="1"&gt;*The command is NOT case sensitive&lt;/font&gt;&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;p&gt;You can check the existing set of SPNs for the machine account by running the following command:  &lt;p&gt;&amp;gt; Setspn.exe -L &amp;lt;&lt;em&gt;myIISserver-NetBIOS-name&lt;/em&gt;&amp;gt;  &lt;p&gt;&amp;nbsp; &lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;Special case of running IIS 7.0 in a WEB FARM&lt;/strong&gt;&lt;br&gt;&lt;/font&gt;&lt;br&gt;If you are running IIS 7.0 server in a Web farm the KDC will not know in advance which individual server the request may go to and hence ticket decryption may fail. Hence in such a scenario instead of registering SPNs under a specific machine account use a domain account. I am not a SharePoint guy but based on what I have read on the Web this scenario is also applicable to a single SharePoint server configuration.&lt;br&gt;&lt;/p&gt; &lt;p&gt;There are two ways to go:&lt;/p&gt; &lt;p&gt;Either &lt;/p&gt; &lt;p&gt;Disable Kernel mode authentication and follow the general steps for Kerberos as in the previous IIS 6.0 version. Refer &lt;a href="http://support.microsoft.com/kb/871179" target="_blank"&gt;this&lt;/a&gt;.&amp;nbsp; &lt;p&gt;Or,  &lt;p&gt;[Recommended for Performance reasons]  &lt;p&gt;Let Kernel mode authentication be enabled and the Application pool's identity be used for Kerberos ticket decryption. The only thing you need to do here is:  &lt;p&gt;1. Run the Application pool under a common custom domain account.  &lt;p&gt;2. Add this attribute "useAppPoolCredentials" in the ApplicationHost.config file.  &lt;p&gt;&amp;lt;system.webServer&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;lt;security&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;authentication&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;windowsAuthentication enabled="true" useKernelMode="true" &lt;strong&gt;useAppPoolCredentials="true"&lt;/strong&gt; /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/authentication&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/security&amp;gt;&lt;br&gt;&amp;lt;/system.webServer&amp;gt;  &lt;p&gt;Remember there is no GUI setting for this. You need to modify the ApplicationHost.config file from  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&amp;lt;%SystemDrive%&amp;gt;/Windows/System32/inetsrv/config&lt;/u&gt;&lt;/strong&gt; folder on the IIS 7.0 machine.  &lt;p&gt;3. Add the SPNs in the form:  &lt;p&gt;&lt;em&gt;http/&amp;lt;virtualhost-name&amp;gt;&lt;/em&gt; and  &lt;p&gt;&lt;em&gt;http/&amp;lt;virtualhost-name.fully-qualified-name&amp;gt;&lt;/em&gt;&amp;nbsp; for the Application Pool Identity.  &lt;p&gt;Ensure that we don't have such an entry for SPNs for any other account including IIS server machine account.  &lt;p&gt;***If we have the same SPN mapped to multiple accounts (be it a machine or an user account) it leads to Duplicate SPNs and will break Kerberos.  &lt;p&gt;Hope this helps!  &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9252291" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/Authentication/default.aspx">Authentication</category><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/Kerberos/default.aspx">Kerberos</category><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/IIS+7.0/default.aspx">IIS 7.0</category><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/Setup/default.aspx">Setup</category></item><item><title>FTP changes not taking effect in IIS 7.0?</title><link>http://blogs.msdn.com/saurabh_singh/archive/2008/11/21/ftp-changes-not-taking-effect-in-iis-7-0.aspx</link><pubDate>Fri, 21 Nov 2008 23:47:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9132260</guid><dc:creator>Saurabh Singh</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/saurabh_singh/comments/9132260.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh_singh/commentrss.aspx?PostID=9132260</wfw:commentRss><wfw:comment>http://blogs.msdn.com/saurabh_singh/rsscomments.aspx?PostID=9132260</wfw:comment><description>&lt;p&gt;I was working on an FTP issue the other day on IIS 7.0 and I missed something very basic which could have resolved my issue way back had I noticed the nuances of this new model. Normally people tend to go ahead with restarting IIS services for some changes done in the configuration to make sure everything is fresh. Like running IISRESET from the cmd prompt or Restarting IIS services from the IIS manager itself. But in IIS 7.0 if you want to restart FTP services ensure you don't go by the above. This will restart IISADMIN, WAS and W3SVC services but not FTPSVC. IIS 7.0 OOB Secure FTP module runs under a separate process Svchost.exe. So doing an IISRESET won't help for FTP changes to take effect.&lt;/p&gt; &lt;p&gt;Ensure you run these two commands instead:&lt;/p&gt; &lt;p&gt;Start -&amp;gt; Run -&amp;gt; cmd&lt;/p&gt; &lt;p&gt;At the cmd prompt:&lt;/p&gt; &lt;p&gt;&amp;gt;net stop ftpsvc&lt;br&gt;The Microsoft FTP Service service is stopping.&lt;br&gt;The Microsoft FTP Service service was stopped successfully. &lt;/p&gt; &lt;p&gt;&amp;gt;net start ftpsvc&lt;br&gt;The Microsoft FTP Service service is starting.&lt;br&gt;The Microsoft FTP Service service was started successfully. &lt;p&gt;Hope this helps one who may have unnoticed this change.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9132260" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/FTP/default.aspx">FTP</category><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/IIS+7.0/default.aspx">IIS 7.0</category><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/service+startup/default.aspx">service startup</category></item><item><title>Troubleshooting TS Gateway connectivity on Windows 2008, IIS 7.0</title><link>http://blogs.msdn.com/saurabh_singh/archive/2008/08/30/troubleshooting-ts-gateway-connectivity-on-windows-2008-iis-7-0.aspx</link><pubDate>Sat, 30 Aug 2008 07:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8907590</guid><dc:creator>Saurabh Singh</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/saurabh_singh/comments/8907590.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh_singh/commentrss.aspx?PostID=8907590</wfw:commentRss><wfw:comment>http://blogs.msdn.com/saurabh_singh/rsscomments.aspx?PostID=8907590</wfw:comment><description>&lt;P&gt;Here is something which is not my domain but had to learn the hard way. I recently encountered an issue while enabling Terminal Services Gateway (TSG) on Windows 2008 server. TSG is coupled with IIS 7.0 hosted on Windows 2k8 server and that's how I came into picture. TSG in simple terms is a feature using which one can connect remotely to an internal network over secure HTTPS port 443 from the Internet. Earlier Remote Desktop Protocol (RDP) connections used TCP port 3389. In many corporate environment this port may be blocked by the firewall. However now with TSG connecting on port 443 (common SSL port for http traffic) user should not get into the common issues of port being blocked. In my case we had the TSG installed as one of the roles on the server. The setup was fine.&lt;BR&gt;The only concern was that we already were using the Default Web site for some application. It can also happen otherwise, you have the TSG setup on an IIS 7 web site and if you go ahead and install let's say Exchange on top of it under the same site it may break the TSG functionality. &lt;/P&gt;
&lt;P&gt;When you install TSG, it creates two virtual directories called Rpc and RpcWithCert under the web site as shown below. 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/ce79cb5c9d9e_1A02/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/ce79cb5c9d9e_1A02/image_4.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=147 alt=image src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/ce79cb5c9d9e_1A02/image_thumb_1.png" width=152 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/ce79cb5c9d9e_1A02/image_thumb_1.png"&gt;&lt;/A&gt; 
&lt;P&gt;Under the hood it appears a call is made for 
&lt;P&gt;http://&amp;lt;server-name&amp;gt;:443/rpc/rpcproxy.dll?localhost:3388 when you try to connect through TSG. So yes IIS is very much involved here. 
&lt;P&gt;Now what can you do to fix this, perhaps you can install your web application (say Exchange) on some other web site and a different SSL port like 444 and have TSG site listening on port 443. Or else just the opposite. 
&lt;P&gt;In my case we went with the 2nd option since we didn't want Exchange to be reinstalled again.&lt;BR&gt;But even if you use either of the above options it may not go that smoothly as it looks to be. 
&lt;P&gt;You may see the error as shown below when you try to use terminal service through TSG. 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/ce79cb5c9d9e_1A02/image_12.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/ce79cb5c9d9e_1A02/image_12.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=401 alt=image src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/ce79cb5c9d9e_1A02/image_thumb_5.png" width=419 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/ce79cb5c9d9e_1A02/image_thumb_5.png"&gt;&lt;/A&gt; Click on OK...&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/ce79cb5c9d9e_1A02/image_8.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/ce79cb5c9d9e_1A02/image_8.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=123 alt=image src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/ce79cb5c9d9e_1A02/image_thumb_3.png" width=560 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/ce79cb5c9d9e_1A02/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;If you are seeing something like this, as a workaround create a new web site and copy the settings for the Virtual directories &lt;STRONG&gt;/Rpc&lt;/STRONG&gt; and &lt;STRONG&gt;/RpcwithCert&lt;/STRONG&gt; from the previous site to the the new web site. You can do this easily by copying the configuration in the applicationHost.config file.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Here are the steps:&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;1. Copy the following configuration (in the ApplicationHost.config file from C:\&amp;lt;Windows&amp;gt;\System32\inetsrv\config) from the previous site to the new site to add the virtual directories for your new web site.&lt;/P&gt;
&lt;DIV&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;site name="&lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;new-web-site&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;" id=...&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
...
&lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;application path="/Rpc" applicationPool="SomeAppPool"&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
       &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;virtualDirectory path="/" physicalPath="C:\Windows\System32\RpcProxy" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/application&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;application path="/RpcWithCert" applicationPool="SomeAppPool"&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
        &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;virtualDirectory path="/" physicalPath="C:\Windows\System32\RpcProxy" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/application&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt; 
...
&lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/site&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;So this will create two virtual directories in your new web site called &lt;STRONG&gt;Rpc&lt;/STRONG&gt; and &lt;STRONG&gt;RpcWithCert&lt;/STRONG&gt;. 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/ce79cb5c9d9e_1A02/image_14.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/ce79cb5c9d9e_1A02/image_14.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=67 alt=image src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/ce79cb5c9d9e_1A02/image_thumb_6.png" width=138 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/ce79cb5c9d9e_1A02/image_thumb_6.png"&gt;&lt;/A&gt; 
&lt;P&gt;Add an SSL binding for the new Web site on port 443 as well. Ensure no other site is listening on port 443. 
&lt;P&gt;2. Copy the following for the previous web site in the ApplicationHost.config file to the new web site. 
&lt;P&gt;This is the section contained in the Location tag for the Virtual directories &lt;STRONG&gt;/Rpc&lt;/STRONG&gt; and &lt;STRONG&gt;/RpcWithCert&lt;/STRONG&gt;. You need to copy this section from the location tag for the &amp;lt;previous-web-site&amp;gt; and add it to the location tag for the &amp;lt;new-web-site&amp;gt;.&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: gray 1px solid; WIDTH: 97.5%; CURSOR: text; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: gray 1px solid; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4"&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;location path="&lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;previous-web-site&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;/Rpc"&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
        &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;system&lt;SPAN style="COLOR: #cc6633"&gt;.webServer&lt;/SPAN&gt;&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;directoryBrowse enabled="false" showFlags="Date, Time, Size, Extension" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;handlers accessPolicy="Execute"&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;add name="RPCPROXY" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\system32\RpcProxy\RpcProxy&lt;SPAN style="COLOR: #cc6633"&gt;.dll&lt;/SPAN&gt;" requireAccess="Execute" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/handlers&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;serverRuntime uploadReadAheadSize="0" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;defaultDocument enabled="true" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;modules&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;add name="PasswordExpiryModule" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/modules&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;security&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;requestFiltering&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                    &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;requestLimits maxAllowedContentLength="2147483648" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/requestFiltering&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;authentication&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                    &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;anonymousAuthentication enabled="false" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                    &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;basicAuthentication enabled="false" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                    &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;windowsAuthentication enabled="true" useKernelMode="false" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/authentication&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;access sslFlags="Ssl, Ssl128" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/security&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;httpErrors&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;remove statusCode="401" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;error statusCode="401" path="C:\Windows\system32\RpcProxy\Error401&lt;SPAN style="COLOR: #cc6633"&gt;.txt&lt;/SPAN&gt;" responseMode="File" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/httpErrors&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
        &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/system&lt;SPAN style="COLOR: #cc6633"&gt;.webServer&lt;/SPAN&gt;&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/location&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: gray 1px solid; WIDTH: 97.5%; CURSOR: text; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: gray 1px solid; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4"&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;location path="&lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;previous-web-site&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;/RpcWithCert"&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
        &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;system&lt;SPAN style="COLOR: #cc6633"&gt;.webServer&lt;/SPAN&gt;&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;directoryBrowse enabled="false" showFlags="Date, Time, Size, Extension" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;handlers accessPolicy="Execute"&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;add name="RPCPROXY" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\system32\RpcProxy\RpcProxy&lt;SPAN style="COLOR: #cc6633"&gt;.dll&lt;/SPAN&gt;" requireAccess="Execute" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/handlers&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;defaultDocument enabled="true" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;security&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;authentication&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                    &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;anonymousAuthentication enabled="false" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                    &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;basicAuthentication enabled="false" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                    &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;clientCertificateMappingAuthentication enabled="true" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                    &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;digestAuthentication enabled="false" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                    &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;windowsAuthentication enabled="false" useKernelMode="false" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                    &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;iisClientCertificateMappingAuthentication enabled="true" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/authentication&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;access sslFlags="Ssl, SslNegotiateCert, SslRequireCert, Ssl128" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;requestFiltering&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                    &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;requestLimits maxAllowedContentLength="2147483648" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/requestFiltering&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/security&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;serverRuntime uploadReadAheadSize="0" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;modules&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;add name="PasswordExpiryModule" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/modules&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;httpErrors&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;remove statusCode="401" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;error statusCode="401" path="C:\Windows\system32\RpcProxy\Error401&lt;SPAN style="COLOR: #cc6633"&gt;.txt&lt;/SPAN&gt;" responseMode="File" /&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
            &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/httpErrors&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
        &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/system&lt;SPAN style="COLOR: #cc6633"&gt;.webServer&lt;/SPAN&gt;&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN style="COLOR: #006080"&gt;&amp;lt;&lt;/SPAN&gt;/location&lt;SPAN style="COLOR: #006080"&gt;&amp;gt;&lt;/SPAN&gt; &lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;BR&gt;3. Ensure that we replace &lt;EM&gt;&lt;STRONG&gt;&amp;lt;previous-web-site&amp;gt;&lt;/STRONG&gt;&lt;/EM&gt; with the &lt;EM&gt;&lt;STRONG&gt;&amp;lt;new-web-site&amp;gt;&lt;/STRONG&gt;&lt;/EM&gt; in the following tags above:&lt;/P&gt;
&lt;P&gt;&amp;lt;location path="&lt;STRONG&gt;&amp;lt;previous-web-site&amp;gt;&lt;/STRONG&gt;/RpcWithCert"&amp;gt; &lt;STRONG&gt;-----&amp;gt;&lt;/STRONG&gt; &amp;lt;location path="&lt;STRONG&gt;&amp;lt;new-web-site&amp;gt;&lt;/STRONG&gt;/RpcWithCert"&amp;gt; &lt;/P&gt;&amp;lt;location path="&lt;STRONG&gt;&amp;lt;previous-web-site&amp;gt;&lt;/STRONG&gt;/Rpc"&amp;gt;&amp;nbsp; &lt;STRONG&gt;-----&amp;gt;&lt;/STRONG&gt; &amp;lt;location path="&lt;STRONG&gt;&amp;lt;new-web-site&amp;gt;&lt;/STRONG&gt;/Rpc"&amp;gt;&lt;BR&gt;
&lt;P&gt;4. Run iisreset from the cmd prompt. Or it may also work with just restarting W3SVC service (net stop w3svc, net start w3svc).&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Go ahead and test RDP over TSG from the client. If it still doesn't work you may have to try the 5th step as below.&lt;/P&gt;
&lt;P&gt;5. Add the following registry entry. Run this from the cmd prompt:&lt;BR&gt;&amp;gt; reg add HKLM\Software\Microsoft\RPC\RpcProxy /v Website /t REG_SZ /d&amp;nbsp; &lt;STRONG&gt;&amp;lt;new-web-site&amp;gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;One last thing, ensure that the certificate issued to the TS server gateway is trusted on the client from where we are doing a terminal login. &lt;/P&gt;
&lt;P&gt;Happy troubleshooting! 
&lt;P&gt;Cheers &lt;IMG alt="Martini Glass" src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/martini.gif" mce_src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/martini.gif"&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8907590" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/IIS+7.0/default.aspx">IIS 7.0</category><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/Setup/default.aspx">Setup</category><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/TS+Gateway/default.aspx">TS Gateway</category></item><item><title>My IIS 7.0 Administration UI Extension Page</title><link>http://blogs.msdn.com/saurabh_singh/archive/2007/11/28/My-first-IIS-7.0-Administration-UI-extension-page.aspx</link><pubDate>Wed, 28 Nov 2007 20:24:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6582394</guid><dc:creator>Saurabh Singh</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/saurabh_singh/comments/6582394.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh_singh/commentrss.aspx?PostID=6582394</wfw:commentRss><wfw:comment>http://blogs.msdn.com/saurabh_singh/rsscomments.aspx?PostID=6582394</wfw:comment><description>&lt;P&gt;The UI extension option in IIS 7.0 is an exciting feature for any .Net developer. You can write your own custom UI pages and can add various features to it to manage IIS on Windows Vista and Windows Server 2008. I have written an UI extension and is attached with this post.&lt;/P&gt;
&lt;P&gt;I have added the IIsReset feature provided by my good friend Rakki as part of this UI module. He had blogged about it &lt;A href="http://blogs.msdn.com/rakkimk/archive/2007/11/06/iis7-iisreset-ui-module-for-iis7-manager-inetmgr.aspx" target=_blank mce_href="http://blogs.msdn.com/rakkimk/archive/2007/11/06/iis7-iisreset-ui-module-for-iis7-manager-inetmgr.aspx"&gt;here&lt;/A&gt;. Besides IISRESET, I have also added an integrated browser, AppCmd.exe UI and a generic Request monitoring tab. &lt;/P&gt;
&lt;P&gt;To add this module in your IIS 7 manager follow the steps below: &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Download the ExtensibilityDemo.dll. &lt;/LI&gt;
&lt;LI&gt;Drag and Drop the ExtensibilityDemo.dll into the Global Assembly Cache (C:\Windows\assembly) or use GacUtil -i ExtensibilityDemo.dll to install it to the GAC. &lt;/LI&gt;
&lt;LI&gt;From the Windows Explorer, browse to the file &lt;/LI&gt;&lt;/OL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;%WinDir%\System32\InetSrv\config\Administration.config. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4. Search for the &amp;lt;moduleProviders&amp;gt; section and add the following &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;lt;add name="ExtensibilityDemo" type="ExtensibilityDemo.DemoModuleProvider, ExtensibilityDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=204f1a1ad20ba534" /&amp;gt; &lt;/P&gt;
&lt;P&gt;You need to crosscheck that PublickKeyToken matches what is present in the GAC. &lt;/P&gt;
&lt;P&gt;This should be same as the following in the Assembly folder: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_6.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=428 alt=image src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_2.png" width=376 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5. Search for the &amp;lt;modules&amp;gt; section and add the following &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;lt;!-- For all Sites --&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;location path="."&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;modules&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name="ExtensibilityDemo" /&amp;gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6. Open Inetmgr (Start Menu-&amp;gt;Run-&amp;gt;Inetmgr) and You will see the module listed in your IIS 7 Manager if everything went fine during the installation.&lt;/P&gt;
&lt;P&gt;You can see the Module listed in Connections Pane as well as middle pane in its own category. If you want you can remove from the Connections Pane by right click and "remove".&lt;/P&gt;
&lt;P&gt;Here are some screen shots for this extension:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_8.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_8.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=160 alt=image src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_3.png" width=206 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;In the central IIS manager pane (window) you should see the following:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_10.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_10.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=127 alt=image src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_4.png" width=240 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_4.png"&gt;&lt;/A&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_20.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_20.png"&gt;&lt;IMG height=76 alt=image src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_9.png" width=304 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_9.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_12.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_12.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=371 alt=image src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_5.png" width=439 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_5.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_14.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_14.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=568 alt=image src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_6.png" width=539 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_6.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_16.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_16.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=563 alt=image src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_7.png" width=392 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_7.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_18.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_18.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=433 alt=image src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_8.png" width=532 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_8.png"&gt;&lt;/A&gt; &lt;A href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_22.png" mce_href="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_22.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=297 alt=image src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_10.png" width=537 border=0 mce_src="http://blogs.msdn.com/blogfiles/saurabh_singh/WindowsLiveWriter/MyfirstII.0AdministrationUIExtensionPage_12169/image_thumb_10.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;I will be adding some new functionalities as time progresses to have more UI interface for various features. I will recommend if you are interested start developing your modules today to customize/extend IIS 7.0 features.&lt;/P&gt;
&lt;P&gt;Good luck.... &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6582394" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/saurabh_singh/attachment/6582394.ashx" length="32768" type="application/x-msdownload" /><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/IIS+7.0/default.aspx">IIS 7.0</category><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/Tools/default.aspx">Tools</category></item><item><title>Accessing iis 7.0 features programmatically from configuration file(S) (C#)</title><link>http://blogs.msdn.com/saurabh_singh/archive/2007/11/24/accessing-iis-7-0-features-programmatically-from-configuration-file-s-c.aspx</link><pubDate>Sun, 25 Nov 2007 02:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6507046</guid><dc:creator>Saurabh Singh</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/saurabh_singh/comments/6507046.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh_singh/commentrss.aspx?PostID=6507046</wfw:commentRss><wfw:comment>http://blogs.msdn.com/saurabh_singh/rsscomments.aspx?PostID=6507046</wfw:comment><description>IIS 7.0 has great features for developers now. It is integrated with .Net. UI has completely changed from the previous versions. It has entirely a new look and feel. I feel there would be a steep learning curve for IIS users, but nothing to worry, unlike...(&lt;a href="http://blogs.msdn.com/saurabh_singh/archive/2007/11/24/accessing-iis-7-0-features-programmatically-from-configuration-file-s-c.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6507046" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/IIS+7.0/default.aspx">IIS 7.0</category><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/.Net/default.aspx">.Net</category><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/Code+Sample/default.aspx">Code Sample</category></item><item><title>my first post on IIS 7.0......lot to explore yet :)</title><link>http://blogs.msdn.com/saurabh_singh/archive/2007/11/23/my-first-post-on-iis-7-0-lot-to-explore-yet.aspx</link><pubDate>Sat, 24 Nov 2007 01:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6491600</guid><dc:creator>Saurabh Singh</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/saurabh_singh/comments/6491600.aspx</comments><wfw:commentRss>http://blogs.msdn.com/saurabh_singh/commentrss.aspx?PostID=6491600</wfw:commentRss><wfw:comment>http://blogs.msdn.com/saurabh_singh/rsscomments.aspx?PostID=6491600</wfw:comment><description>Recently I have started exploring IIS 7.0 and one word that can express my feeling is "WOW!". IIS 7.0 is way ahead of all the previous versions of IIS. I have worked extensively with IIS 5.0/5.1/6.0 and I can say for sure, IIS 7.0 is completely in a different...(&lt;a href="http://blogs.msdn.com/saurabh_singh/archive/2007/11/23/my-first-post-on-iis-7-0-lot-to-explore-yet.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6491600" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/IIS+7.0/default.aspx">IIS 7.0</category><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/.Net/default.aspx">.Net</category><category domain="http://blogs.msdn.com/saurabh_singh/archive/tags/Code+Sample/default.aspx">Code Sample</category></item></channel></rss>