<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.iis.net/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/" xmlns:cs="http://blogs.iis.net/"><channel><title>BillS IIS Blog : Compatibility</title><link>http://blogs.iis.net/bills/archive/tags/Compatibility/default.aspx</link><description>Tags: Compatibility</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>More Tips and Troubleshooting Help for Classic ASP Developers</title><link>http://blogs.iis.net/bills/archive/2009/02/20/more-tips-and-troubleshooting-help-for-classic-asp-developers.aspx</link><pubDate>Fri, 20 Feb 2009 23:10:18 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:2956074</guid><dc:creator>bills</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/bills/rsscomments.aspx?PostID=2956074</wfw:commentRss><comments>http://blogs.iis.net/bills/archive/2009/02/20/more-tips-and-troubleshooting-help-for-classic-asp-developers.aspx#comments</comments><description>&lt;p&gt;Back in May of 2007 I posted a &lt;a href="http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx"&gt;tips for Classic ASP developers&lt;/a&gt; post which has since received more than 50 comments and 85,000 views.&amp;#160; Robert McMurray just posted a set of fabulous tutorials for Classic ASP developers.&amp;#160; If you’re out there and having issues with Classic ASP and IIS7 and need some help, you’re not alone!&amp;#160; Read these articles to get help:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;&lt;a href="http://learn.iis.net/page.aspx/562/classic-asp-is-not-installed-by-default-on-iis-70-and-iis-75/"&gt;Classic ASP is not installed by default on IIS 7.0 and IIS 7.5&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;In IIS 7.0 and 7.5, the classic version of ASP is not installed by default. Because of this, you might see HTTP 404 errors when you try to browse to an ASP page on your server, or you might see the source code for your ASP page displayed in your browser window ... &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://learn.iis.net/page.aspx/563/using-classic-asp-with-microsoft-access-databases-on-iis-70-and-iis-75/"&gt;Using Classic ASP with Microsoft Access Databases on IIS 7.0 and IIS 7.5&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Note: Microsoft Access databases have been popular for many years with developers who use Active Server Pages (ASP) for small-scale applications, but Microsoft Access databases are not designed for scalability, therefore Access databases should only be used ... &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://learn.iis.net/page.aspx/564/classic-asp-script-error-messages-are-no-longer-shown-in-a-web-browser-by-default/"&gt;Classic ASP script error messages are no longer shown in a Web browser by default&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In earlier versions of IIS, error messages from classic ASP scripts were sent to a Web browser, by default. Because these error messages might reveal sensitive information to malicious users, IIS 7.0 disables this feature by default. When your classic ASP ... &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://learn.iis.net/page.aspx/565/using-failed-request-tracing-to-troubleshoot-classic-asp-errors/"&gt;Using Failed Request Tracing to troubleshoot Classic ASP errors&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;One of the great troubleshooting features that is built in to IIS 7.0 is Failed Request Tracing, which lets you configure tracing rules on your server that will create detailed troubleshooting log files for custom failure conditions that you define. For example ... &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://learn.iis.net/page.aspx/566/classic-asp-parent-paths-are-disabled-by-default/"&gt;Classic ASP parent paths are disabled by default&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Classic ASP Parent Paths let developers use relative addresses that contain &amp;quot;..&amp;quot; in the paths to files or folders. For example, the following code excerpt illustrates an ASP page that maps a parent path: % Response.Write Server.MapPath(&amp;quot;../example.asp&amp;quot;)%&amp;gt; ... &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://learn.iis.net/page.aspx/567/applphysicalpath-server-variable-on-windows-vista-rtm/"&gt;APPL_PHYSICAL_PATH Server Variable on Windows Vista RTM&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The original release of IIS 7.0 that shipped with Windows Vista returned a different value for the APPL_PHYSICAL_PATH server variable than that which was returned by previous &lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=2956074" width="1" height="1"&gt;</description><category domain="http://blogs.iis.net/bills/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.iis.net/bills/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://blogs.iis.net/bills/archive/tags/Compatibility/default.aspx">Compatibility</category><category domain="http://blogs.iis.net/bills/archive/tags/IIS+News+Item/default.aspx">IIS News Item</category><category domain="http://blogs.iis.net/bills/archive/tags/Developers/default.aspx">Developers</category><category domain="http://blogs.iis.net/bills/archive/tags/ASP/default.aspx">ASP</category></item><item><title>How to Migrate from IIS 6 to IIS 7</title><link>http://blogs.iis.net/bills/archive/2008/06/18/how-to-migrate-from-iis-6-to-iis-7.aspx</link><pubDate>Wed, 18 Jun 2008 16:29:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:2431633</guid><dc:creator>bills</dc:creator><slash:comments>21</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/bills/rsscomments.aspx?PostID=2431633</wfw:commentRss><comments>http://blogs.iis.net/bills/archive/2008/06/18/how-to-migrate-from-iis-6-to-iis-7.aspx#comments</comments><description>&lt;p&gt;With so many cool &lt;a href="http://www.iis.net/default.aspx?tabid=2" mce_href="http://www.iis.net/default.aspx?tabid=2"&gt;new capabilities in IIS7&lt;/a&gt;, and even more new features &lt;a href="http://blogs.iis.net/bills/archive/2008/06/02/how-iis-ships-software.aspx" mce_href="http://blogs.iis.net/bills/archive/2008/06/02/how-iis-ships-software.aspx"&gt;coming out all the time&lt;/a&gt;, it's no wonder you want to move to IIS7.&amp;nbsp; But you work for The Man, and everyone knows The Man wants &lt;a href="http://www.investopedia.com/terms/r/returnoninvestment.asp" mce_href="http://www.investopedia.com/terms/r/returnoninvestment.asp"&gt;ROI&lt;/a&gt;.&amp;nbsp; He can't just let you go &lt;a href="http://www.answers.com/topic/willy-nilly" mce_href="http://www.answers.com/topic/willy-nilly"&gt;willy-nilly&lt;/a&gt; and adopt every cool new technology that hits the street.&amp;nbsp; After all, He has a business to run.&amp;nbsp; And that business currently runs on IIS 6.&amp;nbsp; And he's paid you a lot of money (ok, not that much) to write the code, test the apps, deploy the servers, and keep those HTML pumping machines up and running 24x7x365.&amp;nbsp; And things are running well, right?&amp;nbsp; When was the last time you had to worry about metabase corruption?&amp;nbsp; Or been forced to run IISRESET?&amp;nbsp; Or been paged in the middle of the night with some glorious server 500 error and (of course) the developer who wrote the code is no where to be found?&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Dear reader, I know your plight.&amp;nbsp; I've been there before.&amp;nbsp; I work for &lt;a href="http://weblogs.asp.net/scottgu" mce_href="http://weblogs.asp.net/scottgu"&gt;The Man&lt;/a&gt; too.&amp;nbsp; And while he is a kinder, gentler boss as he moves into his old age (&amp;gt;30s!), he expects results.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;This post is broken into three parts.&amp;nbsp; 1) Sell the Boss 2) Get the Goods 3) Be the Hero (and migrate those servers!).&amp;nbsp; If you're already sold on IIS7, jump to section 2 and 3 for instructions on how to actually migrate those IIS6 servers to IIS7 in a quick and painless way.&amp;nbsp; &lt;/p&gt;
&lt;h2&gt;Sell the Boss&lt;/h2&gt;
&lt;p&gt;So how do you sell The Man on moving to IIS7?&amp;nbsp; Here is my quick top 10 list, &lt;a href="http://blogs.iis.net/bills/contact.aspx" mce_href="http://blogs.iis.net/bills/contact.aspx"&gt;email me&lt;/a&gt; if you need more help:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://blogs.iis.net/bills/archive/2008/06/09/real-world-performance-data-on-iis7.aspx" mce_href="http://blogs.iis.net/bills/archive/2008/06/09/real-world-performance-data-on-iis7.aspx"&gt;IIS7 is faster and more efficient&lt;/a&gt; than any other version of IIS.&lt;/li&gt;
&lt;li&gt;With IIS7 you can &lt;a href="http://learn.iis.net/page.aspx/264/shared-configuration/" mce_href="http://learn.iis.net/page.aspx/264/shared-configuration/"&gt;m&lt;/a&gt;&lt;a href="http://learn.iis.net/page.aspx/264/shared-configuration/" mce_href="http://learn.iis.net/page.aspx/264/shared-configuration/"&gt;anage whole Web farms from one place&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IIS7 allows you to &lt;b&gt;&lt;a href="http://learn.iis.net/page.aspx/156/understanding-iis7-configuration-delegation/" mce_href="http://learn.iis.net/page.aspx/156/understanding-iis7-configuration-delegation/"&gt;delegate management workload with site owners&lt;/a&gt;&lt;/b&gt;. Site owners can also &lt;a href="http://learn.iis.net/page.aspx/158/remote-administration-for-iis-manager/" mce_href="http://learn.iis.net/page.aspx/158/remote-administration-for-iis-manager/"&gt;remotely manage&lt;/a&gt; their sites and applications over HTTPS from Windows Vista, Windows XP, Windows Server 2003, and Windows Server 2008.&amp;nbsp; IIS7's XCopy deployment model even allows you to &lt;a href="http://learn.iis.net/page.aspx/156/understanding-iis7-configuration-delegation/" mce_href="http://learn.iis.net/page.aspx/156/understanding-iis7-configuration-delegation/"&gt;deploy applications preconfigured&lt;/a&gt;!&lt;/li&gt;
&lt;li&gt;IIS7 is much more flexible and customizable than before, allowing you to &lt;a href="http://learn.iis.net/page.aspx/138/build-a-custom-iis7-server/" mce_href="http://learn.iis.net/page.aspx/138/build-a-custom-iis7-server/"&gt;fine tune the server&lt;/a&gt; (including &lt;a href="http://blogs.iis.net/bills/archive/2007/06/04/iis7-on-server-core.aspx" mce_href="http://blogs.iis.net/bills/archive/2007/06/04/iis7-on-server-core.aspx"&gt;server core&lt;/a&gt;!) to minimize security footprint and downtime due to patching.&amp;nbsp; &lt;/li&gt;
&lt;li&gt;You can save loads of time by &lt;a href="http://learn.iis.net/page.aspx/98/using-scripts-to-automate-management/" mce_href="http://learn.iis.net/page.aspx/98/using-scripts-to-automate-management/"&gt;automating more tasks&lt;/a&gt; with the interface that is right for you.&amp;nbsp;&amp;nbsp; &lt;/li&gt;
&lt;li&gt;If you do run into issues, IIS7 makes it easy to &lt;a href="http://learn.iis.net/page.aspx/99/troubleshooting-a-web-server-error/" mce_href="http://learn.iis.net/page.aspx/99/troubleshooting-a-web-server-error/"&gt;resolve site issues faster&lt;/a&gt;, minimizing down time due to that bone headed developer on your staff.&amp;nbsp; &lt;/li&gt;
&lt;li&gt;IIS7 includes &lt;a href="http://www.iis.net/default.aspx?tabid=29" mce_href="http://www.iis.net/default.aspx?tabid=29"&gt;built-in support for PHP&lt;/a&gt;, making it the best Web server for both Open Source languages and .NET.&amp;nbsp; Why would you want to deploy, manage, patch and troubleshoot that Linux+Apache server to support those PHP apps, when you can just use Windows!?&lt;/li&gt;
&lt;li&gt;IIS7 makes it easy to publish content securely over &lt;a href="http://learn.iis.net/page.aspx/356/ftp-7-for-iis-70/" mce_href="http://learn.iis.net/page.aspx/356/ftp-7-for-iis-70/"&gt;FTP/SSL&lt;/a&gt; or &lt;a href="http://learn.iis.net/page.aspx/357/webdav-for-iis-70/" mce_href="http://learn.iis.net/page.aspx/357/webdav-for-iis-70/"&gt;WebDAV&lt;/a&gt;!&lt;/li&gt;
&lt;li&gt;Windows and IIS7 are cheaper than ever with the new &lt;a href="http://www.iis.net/default.aspx?tabid=27" mce_href="http://www.iis.net/default.aspx?tabid=27"&gt;Windows Web 2008&lt;/a&gt; product.&amp;nbsp; This version of Windows is super inexpensive and supports all the great features of IIS, Sharepoint, SQL, Windows Media server and more for Internet facing sites!&lt;/li&gt;
&lt;li&gt;And as if that isn't enough, IIS7 is getting &lt;a href="http://blogs.iis.net/bills/archive/2008/06/02/how-iis-ships-software.aspx" mce_href="http://blogs.iis.net/bills/archive/2008/06/02/how-iis-ships-software.aspx"&gt;better every day&lt;/a&gt; with new IIS7 Extensions like built-in &lt;a href="http://blogs.iis.net/vsood/archive/2008/03/15/bit-rate-throttling-is-now-released.aspx" mce_href="http://blogs.iis.net/vsood/archive/2008/03/15/bit-rate-throttling-is-now-released.aspx"&gt;progressive streaming&lt;/a&gt; and &lt;a href="http://learn.iis.net/page.aspx/89/serving-media-content/" mce_href="http://learn.iis.net/page.aspx/89/serving-media-content/"&gt;playlist support&lt;/a&gt; for media content, &lt;a href="http://blogs.iis.net/thomad/archive/2008/05/30/now-available-url-rewriter-tech-preview-1.aspx" mce_href="http://blogs.iis.net/thomad/archive/2008/05/30/now-available-url-rewriter-tech-preview-1.aspx"&gt;URL Rewrite&lt;/a&gt; capabilities, integrated &lt;a href="http://learn.iis.net/page.aspx/416/basics-of-database-manager/" mce_href="http://learn.iis.net/page.aspx/416/basics-of-database-manager/"&gt;database management&lt;/a&gt;, &lt;a href="http://learn.iis.net/page.aspx/447/managing-iis-with-the-iis-70-powershell-provider/" mce_href="http://learn.iis.net/page.aspx/447/managing-iis-with-the-iis-70-powershell-provider/"&gt;powershell&lt;/a&gt; support, and much much more.&amp;nbsp; &lt;/li&gt;&lt;/ol&gt;
&lt;h2&gt;Get the Goods&lt;/h2&gt;
&lt;p&gt;If your company already has access to Windows Server 2008, you've paid all the money you'll ever need to pay in order to get IIS7 up and running.&amp;nbsp; Have a cheap boss who wants to see the results first?&amp;nbsp; Get the Windows Server 2008 &lt;a href="http://www.microsoft.com/windowsserver2008/en/us/trial-software.aspx" mce_href="http://www.microsoft.com/windowsserver2008/en/us/trial-software.aspx"&gt;trial edition&lt;/a&gt; which lets you try before you buy.&amp;nbsp; I recommend the Windows Web Server 2008 for Internet facing sites, or Standard server for intranet ones. Note:&amp;nbsp; IIS7 also ships with Windows Vista, which you can use for development and testing of your applications.&lt;br&gt; &lt;/p&gt;
&lt;p&gt;Now that you've got IIS7, it's time to get &lt;a href="http://blogs.iis.net/msdeploy/" mce_href="http://blogs.iis.net/msdeploy/"&gt;the migration tool&lt;/a&gt; (&lt;a href="http://iis.net/1602/ItemPermalink.ashx" mce_href="http://iis.net/1602/ItemPermalink.ashx"&gt;x86&lt;/a&gt;) and (&lt;a href="http://iis.net/1603/ItemPermalink.ashx" mce_href="http://iis.net/1603/ItemPermalink.ashx"&gt;x64&lt;/a&gt;).&amp;nbsp; Ok, it is a WHOLE LOT MORE than just a migration tool, but this article is about migrating, and the Microsoft Web Deployment tool was built specifically with &lt;a href="http://learn.iis.net/page.aspx/427/migrating-from-iis-60-to-iis-70-using-ms-deploy/rev/1" mce_href="http://learn.iis.net/page.aspx/427/migrating-from-iis-60-to-iis-70-using-ms-deploy/rev/1"&gt;migration from IIS6 to IIS7 in mind&lt;/a&gt;.&amp;nbsp; Download it now, use it to not only migrate from IIS6 to IIS7, but to &lt;a href="http://learn.iis.net/page.aspx/422/archiving-and-restoring-a-web-site/" mce_href="http://learn.iis.net/page.aspx/422/archiving-and-restoring-a-web-site/"&gt;archive (snapshot) your entire site/server&lt;/a&gt; (including configuration, content, certificates, etc.).&amp;nbsp; You can also use it to do live &lt;a href="http://learn.iis.net/page.aspx/445/syncing-between-two-iis-60-servers/" mce_href="http://learn.iis.net/page.aspx/445/syncing-between-two-iis-60-servers/"&gt;synchronization of your IIS6&lt;/a&gt; or &lt;a href="http://learn.iis.net/page.aspx/446/syncing-between-two-iis-70-servers/" mce_href="http://learn.iis.net/page.aspx/446/syncing-between-two-iis-70-servers/"&gt;IIS7&lt;/a&gt; sites or servers in a web farm.&amp;nbsp; &lt;a href="http://blogs.iis.net/msdeploy" mce_href="http://blogs.iis.net/msdeploy"&gt;MS Deploy&lt;/a&gt; is going to be your new best friend, be nice to it.&lt;/p&gt;
&lt;h2&gt;Be the Hero (and migrate those servers!)&lt;/h2&gt;
&lt;p&gt;This step is documented very nicely in the &lt;a href="http://learn.iis.net/page.aspx/427/migrating-from-iis-60-to-iis-70-using-ms-deploy/" mce_href="http://learn.iis.net/page.aspx/427/migrating-from-iis-60-to-iis-70-using-ms-deploy/"&gt;learn.iis.net portal under deployment&lt;/a&gt;, but I'll shamelessly steal from there to make your life easier.&amp;nbsp; If things don't work (any longer), you might want to check &lt;a href="http://learn.iis.net/page.aspx/427/migrating-from-iis-60-to-iis-70-using-ms-deploy/" mce_href="http://learn.iis.net/page.aspx/427/migrating-from-iis-60-to-iis-70-using-ms-deploy/"&gt;the official documentation&lt;/a&gt; for the latest updates, or see &lt;a href="http://learn.iis.net/page.aspx/425/troubleshooting-ms-deploy/" mce_href="http://learn.iis.net/page.aspx/425/troubleshooting-ms-deploy/"&gt;Troubleshooting MS Deploy&lt;/a&gt;.&amp;nbsp; This section assumes you've already downloaded MS Deploy and have installed it successfully.&amp;nbsp; (see "Get the Goods")&lt;/p&gt;
&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3&gt;Part 1 - View dependencies of the source&lt;/h3&gt;
&lt;p&gt;1. Get the dependencies of the web site by running the following command:&lt;/p&gt;
&lt;p&gt;msdeploy -verb:getDependencies -source:metakey=lm/w3svc/1&lt;/p&gt;
&lt;p&gt;2. Review the output of the dependencies and look for any script maps or installed components in use by the site. For example, if Windows Authentication is in use by the web site, you will see &amp;lt;dependency name="WindowsAuthentication" /&amp;gt;.&lt;/p&gt;
&lt;p&gt;3. If your site is inheriting any script maps, these will not be listed in the dependencies and you should also review the script maps for your site manually. &lt;/p&gt;
&lt;p&gt;4. Compile a list of the components needed on the destination.&lt;/p&gt;
&lt;p&gt;For detailed steps on analyzing the output of getDependencies, see &lt;a href="http://learn.iis.net/page.aspx/424/viewing-the-dependencies-for-a-web-site/" mce_href="http://learn.iis.net/page.aspx/424/viewing-the-dependencies-for-a-web-site/"&gt;Viewing Dependencies of a Web site&lt;/a&gt;.&lt;/p&gt;
&lt;h6&gt;&lt;br&gt;&lt;/h6&gt;
&lt;h3&gt;Part 2 - Configure the target or destination machine&lt;/h3&gt;
&lt;p&gt;1. Review the list of dependencies and install them on the destination server.&lt;/p&gt;
&lt;p&gt;For example, let’s assume you had the following in use for your web site:&lt;/p&gt;
&lt;p&gt;• ASP.NET&lt;/p&gt;
&lt;p&gt;• Windows Authentication&lt;/p&gt;
&lt;p&gt;• Anonymous Authentication&lt;/p&gt;
&lt;p&gt;Based on analyzing your dependencies, you would install those components and modules. &lt;/p&gt;
&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3&gt;Part 3 – To migrate the site to the source server&lt;/h3&gt;
&lt;p&gt;1. Always make a backup of the destination server. Even if you are just testing, it allows you to easily restore the state of your server. Run the following command to backup an IIS 7.0 server:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;%windir%\system32\inetsrv\appcmd add backup “PreMsDeploy”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;2. Run the following command on the destination server to take an archive of the server for migration:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:archivedir=c:\site1archive&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;3. Run the following command on the destination server to validate what would happen if a migrate was run:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;msdeploy -verb:migrate -source:archivedir=c:\site1archive -dest:metakey=lm/w3svc/1 -whatif &amp;gt; msdeploymigrate.log&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Note: If you don't wish to sync from an archive, you can sync using the remote service. Specify computerName with the name of your server, such as Server1. If you are not running on the default port and URL, you need to specify the full URL, such as &lt;a href="http://server1:8080/msdeploy" mce_href="http://server1:8080/msdeploy"&gt;http://Server1:8080/msdeploy&lt;/a&gt;. For example, change the source to &lt;br&gt;source:metakey=lm/w3svc/1,&lt;b&gt;computerName=server1&lt;/b&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;3. After verifying the output, run the same command again without the whatif flag:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;msdeploy -verb:migrate -source:archivedir=c:\site1archive -dest:metakey=lm/w3svc/1 -whatif &amp;gt; msdeploymigrate.log&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Note: If you don't wish to sync from an archive, you can sync using the remote service. Specify computerName with the name of your server, such as Server1. If you are not running on the default port and URL, you need to specify the full URL, such as &lt;a href="http://server1:8080/msdeploy" mce_href="http://server1:8080/msdeploy"&gt;http://Server1:8080/msdeploy&lt;/a&gt;. For example, change the dest to &lt;br&gt;dest:metakey=lm/w3svc/1,&lt;b&gt;computerName=server1&lt;/b&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;You are now done migrating your site. To verify, test browsing to the web site on the destination server. For troubleshooting help, see &lt;a href="http://learn.iis.net/page.aspx/425/troubleshooting-ms-deploy/" mce_href="http://learn.iis.net/page.aspx/425/troubleshooting-ms-deploy/"&gt;Troubleshooting MS Deploy&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=2431633" width="1" height="1"&gt;</description><category domain="http://blogs.iis.net/bills/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.iis.net/bills/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.iis.net/bills/archive/tags/Compatibility/default.aspx">Compatibility</category><category domain="http://blogs.iis.net/bills/archive/tags/IIS+News+Item/default.aspx">IIS News Item</category><category domain="http://blogs.iis.net/bills/archive/tags/Developers/default.aspx">Developers</category><category domain="http://blogs.iis.net/bills/archive/tags/Administrators/default.aspx">Administrators</category><category domain="http://blogs.iis.net/bills/archive/tags/Migration/default.aspx">Migration</category></item><item><title>How to install ASP.NET 1.1 with IIS7 on Vista and Windows 2008</title><link>http://blogs.iis.net/bills/archive/2008/06/02/installing-asp-net-1-1-with-iis7-on-vista-and-windows-2008.aspx</link><pubDate>Mon, 02 Jun 2008 23:53:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:2396238</guid><dc:creator>bills</dc:creator><slash:comments>21</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/bills/rsscomments.aspx?PostID=2396238</wfw:commentRss><comments>http://blogs.iis.net/bills/archive/2008/06/02/installing-asp-net-1-1-with-iis7-on-vista-and-windows-2008.aspx#comments</comments><description>&lt;H4&gt;Overview&lt;/H4&gt;
&lt;P&gt;ASP.NET 2.0 (3.0 and 3.5) are easy to install with Windows Vista and Windows 2008 - just install the ASP.NET component located under IIS-&amp;gt;Word Wide Web Services-&amp;gt;Application Development Features.&amp;nbsp; You can find this set of components in Windows 2008 by clicking &lt;STRONG&gt;Start&lt;/STRONG&gt;, and click &lt;STRONG&gt;Server Manager&lt;/STRONG&gt;.&amp;nbsp; Expand the left-hand treeview in Server Manager and click &lt;STRONG&gt;Manage Roles&lt;/STRONG&gt;, and then &lt;STRONG&gt;Web Server (IIS)&lt;/STRONG&gt;.&amp;nbsp; In the right-hand pane look for an option that says &lt;STRONG&gt;Add Role Services&lt;/STRONG&gt;.&amp;nbsp; If you're on Windows Vista, click &lt;STRONG&gt;Start&lt;/STRONG&gt;, click &lt;STRONG&gt;Control Panel&lt;/STRONG&gt;,&lt;STRONG&gt; &lt;/STRONG&gt;click&lt;STRONG&gt; Programs&lt;/STRONG&gt;, and then&lt;STRONG&gt; Windows Features&lt;/STRONG&gt;.&amp;nbsp; Look for the following tree of features under Internet Information Services (IIS):&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/image_4.png" mce_href="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/image_4.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=280 alt=image src="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/image_thumb_1.png" width=410 border=0 mce_src="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;ASP.NET 1.1 &lt;/STRONG&gt;is not included in Windows Vista or Windows 2008 and must be downloaded and installed manually.&amp;nbsp; This post shows you how: &lt;/P&gt;
&lt;H4&gt;Step 1: Install "IIS Metabase Compatibility"&lt;/H4&gt;
&lt;P&gt;The IIS7 "Metabase compatibility" component is required to successfully install ASP.NET 1.1.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;To install it on Windows 2008 Server, click &lt;STRONG&gt;Start&lt;/STRONG&gt;, and click &lt;STRONG&gt;Server Manager&lt;/STRONG&gt;.&amp;nbsp; Expand the left-hand treeview in Server Manager and click &lt;STRONG&gt;Manage Roles&lt;/STRONG&gt;, and then &lt;STRONG&gt;Web Server (IIS)&lt;/STRONG&gt;.&amp;nbsp; In the right-hand pane look for an option that says &lt;STRONG&gt;Add Role Services&lt;/STRONG&gt;.&amp;nbsp; This takes you to wizard where you can install "IIS Metabase Compatibility".&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/enableASPNET11_clip_image006_2.jpg" mce_href="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/enableASPNET11_clip_image006_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=351 alt=enableASPNET11_clip_image006 src="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/enableASPNET11_clip_image006_thumb.jpg" width=355 border=0 mce_src="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/enableASPNET11_clip_image006_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;If you're on Windows Vista, click &lt;STRONG&gt;Start&lt;/STRONG&gt;, click &lt;STRONG&gt;Control Panel&lt;/STRONG&gt;,&lt;STRONG&gt; &lt;/STRONG&gt;click&lt;STRONG&gt; Programs&lt;/STRONG&gt;, and then&lt;STRONG&gt; Windows Features&lt;/STRONG&gt;.&amp;nbsp; Look for Internet Information Services (IIS) and install "IIS Metabase Compatibility". &lt;/P&gt;
&lt;H4&gt;Step 2: Install the .NET Framework v1.1 and .NET Framework v1.1 SP1&lt;/H4&gt;
&lt;P&gt;Install Framework v1.1, SP1, and ASP.NET's security update to SP1:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/info.aspx?na=22&amp;amp;p=1&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=&amp;amp;u=%2fdownloads%2fdetails.aspx%3fFamilyID%3d262d25e3-f589-4842-8157-034d1e7cf3a3%26DisplayLang%3den" mce_href="http://www.microsoft.com/downloads/info.aspx?na=22&amp;amp;p=1&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=&amp;amp;u=%2fdownloads%2fdetails.aspx%3fFamilyID%3d262d25e3-f589-4842-8157-034d1e7cf3a3%26DisplayLang%3den"&gt;.NET Framework Version 1.1 Redistributable Package&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/info.aspx?na=22&amp;amp;p=3&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=&amp;amp;u=%2fdownloads%2fdetails.aspx%3fFamilyID%3da8f5654f-088e-40b2-bbdb-a83353618b38%26DisplayLang%3den" mce_href="http://www.microsoft.com/downloads/info.aspx?na=22&amp;amp;p=3&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=&amp;amp;u=%2fdownloads%2fdetails.aspx%3fFamilyID%3da8f5654f-088e-40b2-bbdb-a83353618b38%26DisplayLang%3den"&gt;.NET Framework Version 1.1 Service Pack 1&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/info.aspx?na=22&amp;amp;p=7&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=&amp;amp;u=%2fdownloads%2fdetails.aspx%3fFamilyID%3d8ec6fb8a-29eb-49cf-9dbc-1a0dc2273ff9%26DisplayLang%3den" mce_href="http://www.microsoft.com/downloads/info.aspx?na=22&amp;amp;p=7&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=&amp;amp;u=%2fdownloads%2fdetails.aspx%3fFamilyID%3d8ec6fb8a-29eb-49cf-9dbc-1a0dc2273ff9%26DisplayLang%3den"&gt;ASP.NET Security Update for .NET Framework 1.1 SP1&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;When you install .NET Framework Version 1.1, and SP1 for .NET Framework Version 1.1, you'll see the following dialog.&amp;nbsp; Click &lt;STRONG&gt;Run program&lt;/STRONG&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/enableASPNET11_clip_image002_2.jpg" mce_href="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/enableASPNET11_clip_image002_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=248 alt=enableASPNET11_clip_image002 src="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/enableASPNET11_clip_image002_thumb.jpg" width=566 border=0 mce_src="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/enableASPNET11_clip_image002_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;note&lt;/EM&gt;&lt;/STRONG&gt;: If you do not install Framework v1.1 SP1, you may run into Data Execution Prevention errors with messages like "IIS Worker Process has stopped working".&amp;nbsp; This is expected.&amp;nbsp; Installing .NET Framework v1.1 SP1 will fix this.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/enableASPNET11_clip_image004_2.jpg" mce_href="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/enableASPNET11_clip_image004_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=162 alt=enableASPNET11_clip_image004 src="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/enableASPNET11_clip_image004_thumb.jpg" width=370 border=0 mce_src="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/enableASPNET11_clip_image004_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;H4&gt;&amp;nbsp;&lt;/H4&gt;
&lt;H4&gt;Step 3: Enable ASP.NET v1.1 ISAPI Extension&lt;/H4&gt;
&lt;P&gt;Enable ASP.NET v1.1 ISAPI as an allowed ISAPI extension.&amp;nbsp; To do this, open "IIS Manager" administration tool.&amp;nbsp; In the features view, click on the "ISAPI and CGI Restrictions" feature.&amp;nbsp; In the actions pane, click "add"&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Extension&lt;/STRONG&gt;: C:\Windows\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll&lt;STRONG&gt;&lt;/STRONG&gt; &lt;BR&gt;note: change drive if your system drive is not C:\ &lt;BR&gt;&lt;STRONG&gt;Description: &lt;/STRONG&gt;ASP.NET v1.1 &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/image_2.png" mce_href="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/image_2.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=484 alt=image src="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/image_thumb.png" width=590 border=0 mce_src="http://blogs.iis.net/blogs/bills/WindowsLiveWriter/InstallingASP.NET1.1withIIS7_EC87/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;You can also do by running the following command line:&lt;/P&gt;&lt;PRE&gt;%windir%\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis -enable&lt;/PRE&gt;
&lt;H4&gt;&amp;nbsp;&lt;/H4&gt;
&lt;H4&gt;Step 4: Add IgnoreSection Handler to v1.1 machine.config&lt;/H4&gt;
&lt;P&gt;ASP.NET v1.1 will throw runtime exceptions out of the box if you have IIS configuration in the web.config files that are read by your ASP.NET v1.1 applications.&amp;nbsp; To make ASP.NET v1.1 ignore IIS configuration sections, open the Framework v1.1 machine.config file (%windir%\Microsoft.NET\Framework\v1.1.4322\config\machine.config) and add the following section entry just above the bottom tag for the &amp;lt;configSections&amp;gt; element:&lt;/P&gt;
&lt;P&gt;&amp;lt;section name="system.webServer" type="System.Configuration.IgnoreSectionHandler, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /&amp;gt; &lt;BR&gt;&amp;lt;/configSections&amp;gt;&lt;/P&gt;
&lt;H4&gt;&amp;nbsp;&lt;/H4&gt;
&lt;H4&gt;Step 5: Move Site or Application to ASP.NET 1.1 Application Pool&lt;/H4&gt;
&lt;P&gt;During installation, Framework v1.1 creates an application pool called "ASP.NET 1.1" that is configured to load Framework v1.1 upon startup.&amp;nbsp; To move your site or application into this application pool using IIS Manager, please see our &lt;A href="http://technet2.microsoft.com/WindowsServer2008/en/library/ad122434-505b-4fcc-8146-7b21cf10a57f1033.mspx" mce_href="http://technet2.microsoft.com/WindowsServer2008/en/library/ad122434-505b-4fcc-8146-7b21cf10a57f1033.mspx"&gt;online documentation&lt;/A&gt;. You can also do this from the command line by navigating to the %windir%\system32\inetsrv directory and running the following command line:&lt;/P&gt;&lt;PRE&gt;appcmd set app "Default Web Site/" /applicationPool:"ASP.NET 1.1"&lt;BR&gt;&lt;/PRE&gt;
&lt;P&gt;If you would like to create a new application pool that's configured to load Framework v1.1, please see our online documentation for &lt;A href="http://technet2.microsoft.com/WindowsServer/en/Library/ad96956e-4207-4730-b03e-308e3f9e10751033.mspx?mfr=true" mce_href="http://technet2.microsoft.com/WindowsServer/en/Library/ad96956e-4207-4730-b03e-308e3f9e10751033.mspx?mfr=true"&gt;creating an application pool&lt;/A&gt;.&amp;nbsp; You can also do this from the command line by navigating to the %windir%\system32\inetsrv directory and running the following command line:&lt;/P&gt;&lt;PRE&gt;appcmd add apppool /name:"NewPool"  /managedRuntimeVersion:"v1.1" &lt;BR&gt;&lt;/PRE&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=2396238" width="1" height="1"&gt;</description><category domain="http://blogs.iis.net/bills/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.iis.net/bills/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.iis.net/bills/archive/tags/Administration/default.aspx">Administration</category><category domain="http://blogs.iis.net/bills/archive/tags/Compatibility/default.aspx">Compatibility</category><category domain="http://blogs.iis.net/bills/archive/tags/Developers/default.aspx">Developers</category><category domain="http://blogs.iis.net/bills/archive/tags/Administrators/default.aspx">Administrators</category></item><item><title>Tips for Classic ASP developers on IIS7</title><link>http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx</link><pubDate>Tue, 22 May 2007 00:11:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:1718507</guid><dc:creator>bills</dc:creator><slash:comments>58</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/bills/rsscomments.aspx?PostID=1718507</wfw:commentRss><comments>http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx#comments</comments><description>&lt;p&gt;I was reminded the other day just how many classic ASP applications and developers there are out there!&amp;#160; The original ASP rocks, I remember experiencing it for the first time back in 1996/97 when it first came out with IIS3, and being amazed at how programmable it was compared to ColdFusion.&amp;#160; I built many an application using Classic ASP, and there will always be a soft spot in my heart for it. :)&lt;/p&gt;  &lt;p&gt;There are a few changes in IIS7 which Classic ASP developers should be aware of.&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;ASP not installed by default&lt;/h3&gt;  &lt;p&gt;First things first!&amp;#160; If you're moving from XP to Windows Vista / Longhorn Server, you may be getting this error:&lt;/p&gt;  &lt;p&gt;--------------------------------------------------------------------------------------------------------------------&lt;/p&gt;  &lt;p&gt;&lt;em&gt;HTTP Error 404.3 - Not Found &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Description:&lt;/strong&gt; The page you are requesting cannot be served because of the Multipurpose Internet Mail Extensions (MIME) map policy that is configured on the Web server. The page you requested has a file name extension that is not recognized, and is not allowed. &lt;/em&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;--------------------------------------------------------------------------------------------------------------------&lt;/p&gt;  &lt;p&gt;this is usually the case when you haven't installed the ASP component.&amp;#160; Go to where you installed IIS and look under IIS/WWW Services/Application Development/ASP and install it.&amp;#160; :)&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Access and Classic ASP&lt;/h3&gt;  &lt;p&gt;A lot of people use Access as a database - because it is small, can be copied around, and is easy to manage.&amp;#160; One of the changes we made in IIS7 in Vista broke using ASP and Access by default.&amp;#160; I described this change in more detail in &lt;a href="http://blogs.iis.net/bills/archive/2006/10/18/loadUserProfile-and-IIS7-_2D00_-understanding-temporary-directory-failures.aspx" mce_href="http://blogs.iis.net/bills/archive/2006/10/18/loadUserProfile-and-IIS7-_2D00_-understanding-temporary-directory-failures.aspx"&gt;this post&lt;/a&gt;, but essentially it has to do with the fact that Application Pools now use the Application Pool identity's profile and temporary directory, rather than \windows\temp by default.&amp;#160; And since the only one that can write to Network Service's temp directory is the Network Service, anonymous or authenticated ASP applications break, since ASP uses the impersonated identity to access the database.&amp;#160; If you use ASP and Access on IIS7, you've probably seen this error, or a variation of it:&amp;#160; &lt;/p&gt;  &lt;p&gt;--------------------------------------------------------------------------------------------------------------------&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Microsoft JET Database Engine error '80004005'     &lt;br /&gt;Unspecified error&lt;/i&gt; &lt;/p&gt;  &lt;p mce_keep="true"&gt;--------------------------------------------------------------------------------------------------------------------&lt;/p&gt;  &lt;p&gt;The answer is pretty straight forward:&amp;#160; turn off loadUserProfile, or ACL the temp directory to allow writes.&amp;#160; As a result of this and other compatibility issues, we're considering reverting this change in Longhorn Server / Vista SP1.&amp;#160; In the mean time, you can work around it by doing either of the following:&lt;/p&gt;  &lt;p&gt;This appcmd command will turn off loadUserProfile for the Default Application Pool.&amp;#160; if your application runs in a different AppPool, make the corresponding change:&lt;/p&gt;  &lt;p&gt;&lt;i&gt;%windir%\system32\inetsrv\appcmd set config /section:applicationPools /[name='DefaultAppPool'].processModel.loadUserProfile:false&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;This command will ACL the Network Service temp directory to allow creator write / read privledges.&amp;#160; If you run your Application Pool under a different identity, you'll need to ACL that owner's temp directory:&lt;/p&gt;  &lt;p&gt;&lt;i&gt;icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant Users:(CI)(S,WD,AD,X)&lt;/i&gt; &lt;/p&gt;  &lt;p&gt;&lt;i&gt;icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant &amp;quot;CREATOR OWNER&amp;quot;:(OI)(CI)(IO)(F)&lt;/i&gt; &lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p mce_keep="true"&gt;**Update 2/19/2009** if you are having issues with Access and ASP you might want to read this terrific guide recently posted on IIS.NET: &lt;a title="http://learn.iis.net/page.aspx/563/using-classic-asp-with-microsoft-access-databases-on-iis-70-and-iis-75/" href="http://learn.iis.net/page.aspx/563/using-classic-asp-with-microsoft-access-databases-on-iis-70-and-iis-75/"&gt;http://learn.iis.net/page.aspx/563/using-classic-asp-with-microsoft-access-databases-on-iis-70-and-iis-75/&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Script errors no longer shown in browser by default&lt;/h3&gt;  &lt;p&gt;As a result of our &lt;a href="http://blogs.iis.net/thomad/archive/2007/02/06/security-is-painful.aspx" mce_href="http://blogs.iis.net/thomad/archive/2007/02/06/security-is-painful.aspx"&gt;security paranoia&lt;/a&gt;, we turned off ASP's default behavior of sending script errors (including line number and code snippet to the browser.&amp;#160; So instead of seeing the typical error you would see ASP throw, you will now see this:&lt;/p&gt;  &lt;p&gt;--------------------------------------------------------------------------------------------------------------------&lt;/p&gt;  &lt;p&gt;&lt;em&gt;An error occurred on the server when processing the URL. Please contact the system administrator&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;--------------------------------------------------------------------------------------------------------------------&lt;/p&gt;  &lt;p&gt;To revert back to IIS6- behavior, simply run the following command:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;%windir%\system32\inetsrv\appcmd set config -section:asp -scriptErrorSentToBrowser:true&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Or you can find it in the UI here:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://wallpaper.iis7.org/blog/TipsforClassicASPdevelopersonIIS7_10494/aspscripterrors.jpg" mce_href="http://wallpaper.iis7.org/blog/TipsforClassicASPdevelopersonIIS7_10494/aspscripterrors.jpg"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="asp-scripterrors" src="http://wallpaper.iis7.org/blog/TipsforClassicASPdevelopersonIIS7_10494/aspscripterrors_thumb.jpg" width="600" height="480" mce_src="http://wallpaper.iis7.org/blog/TipsforClassicASPdevelopersonIIS7_10494/aspscripterrors_thumb.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;then you'll be back to seeing this style of error instead:&lt;/p&gt;  &lt;p&gt;--------------------------------------------------------------------------------------------------------------------&lt;/p&gt;  &lt;p&gt;Microsoft VBScript compilation error '800a03ea' &lt;/p&gt;  &lt;p&gt;Syntax error &lt;/p&gt;  &lt;p&gt;/test.asp, line 4&lt;/p&gt;  &lt;pre&gt;Response.Write(&amp;quot;I love classic ASP&amp;quot; &amp;amp;&amp;amp; foo)
-------------------------------------^&lt;/pre&gt;

&lt;p&gt;--------------------------------------------------------------------------------------------------------------------&lt;/p&gt;

&lt;h3&gt;&amp;#160;&lt;/h3&gt;

&lt;h3&gt;Parents paths disabled by default (redux)&lt;/h3&gt;

&lt;p&gt;We disabled parent paths by default with IIS6, but I've seen this hit people on Vista coming from XP, where it is still enabled by default in IIS5.1&amp;#160; The enableParentPaths setting determines where ASP &amp;quot;includes&amp;quot; should be allowed to escape the parent directory (eg. ../../../includeFile.inc).&amp;#160;&amp;#160; You'll see this error by default if you try to escape the current directory:&lt;/p&gt;

&lt;p&gt;--------------------------------------------------------------------------------------------------------------------&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Active Server Pages error 'ASP 0131'&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disallowed Parent Path&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;em&gt;/test.asp, line 1&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Include file '../bad.inc' cannot contain '..' to indicate the parent directory. &lt;/em&gt;&lt;/p&gt;

&lt;p&gt;--------------------------------------------------------------------------------------------------------------------&lt;/p&gt;

&lt;p mce_keep="true"&gt;or you may see this error if you are using a path with ../ in it and your ADODB code&lt;/p&gt;

&lt;p&gt;--------------------------------------------------------------------------------------------------------------------&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Server.MapPath()&lt;font size="3" face="Times New Roman"&gt; &lt;/font&gt;&lt;font size="2" face="Arial"&gt;error 'ASP 0175 : 80004005'&lt;/font&gt;&lt;font size="3" face="Times New Roman"&gt; &lt;/font&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;font size="2" face="Arial"&gt;Disallowed Path Characters&lt;/font&gt; &lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;font size="2" face="Arial"&gt;/testdir/test.asp&lt;/font&gt;&lt;font size="2" face="Arial"&gt;, line 9&lt;/font&gt; &lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="2" face="Arial"&gt;&lt;em&gt;The '..' characters are not allowed in the Path parameter for the MapPath method. &lt;/em&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;--------------------------------------------------------------------------------------------------------------------&lt;/p&gt;

&lt;p&gt;To revert back to IIS 5.x behavior, simply run the following command:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;%windir%\system32\inetsrv\appcmd set config -section:asp -enableParentPaths:true&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;or you can find the UI setting here: &lt;/p&gt;

&lt;p&gt;&lt;a href="http://wallpaper.iis7.org/blog/TipsforClassicASPdevelopersonIIS7_10494/aspenableparentpaths.jpg" mce_href="http://wallpaper.iis7.org/blog/TipsforClassicASPdevelopersonIIS7_10494/aspenableparentpaths.jpg"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="asp-enableparentpaths" src="http://wallpaper.iis7.org/blog/TipsforClassicASPdevelopersonIIS7_10494/aspenableparentpaths_thumb.jpg" width="600" height="480" mce_src="http://wallpaper.iis7.org/blog/TipsforClassicASPdevelopersonIIS7_10494/aspenableparentpaths_thumb.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;APPL_PHYSICAL_PATH no longer returns &amp;quot;\&amp;quot; with path&lt;/h3&gt;

&lt;p&gt;If you use Request.ServerVariables(&amp;quot;APPL_PHYSICAL_PATH&amp;quot;) to get at the physical path for your application, you may notice that the physical path no longer returns with a trailing slash.&amp;#160; In previous releases of IIS, we returned this value as stored in the metabase.&amp;#160; In IIS7, we calculate this value based on the configuration store, and we never return a trailing slash.&amp;#160; You'll need to account for this especially if you are the return value with some other part of the path in your application.&lt;/p&gt;

&lt;h3&gt;&amp;#160; &lt;/h3&gt;

&lt;h3&gt;&amp;#160;&lt;/h3&gt;

&lt;h3&gt;Session_OnEnd not firing&lt;/h3&gt;

&lt;p&gt;If you find that Session_onEnd event in your global.asa is not firing, check out &lt;a href="http://blogs.iis.net/lprete/archive/2009/01/04/session-onend-classic-asp-and-iis-7-0.aspx"&gt;this blog post&lt;/a&gt; from Lou on the issue and the fix. &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;br /&gt;

&lt;h3&gt;Summary&lt;/h3&gt;

&lt;p&gt;I browsed through the &lt;a href="http://forums.iis.net/1044.aspx" mce_href="http://forums.iis.net/1044.aspx"&gt;IIS7 Classic ASP Forums&lt;/a&gt;, and these tips seemed to cover nearly all of the issues people were having.&amp;#160; if you are having a problem with ASP on IIS7, check out the forums or leave a comment for me here.&amp;#160; If I find the answer, I'll add it to this post!&amp;#160; Thanks!&lt;/p&gt;

&lt;p mce_keep="true"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href="mailto:?body=Thoughtyoumightlikethis:http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx" mce_href="mailto:?body=Thoughtyoumightlikethis:http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx"&gt;email it!&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx&amp;amp;title=Classic ASP"&gt;bookmark it!&lt;/a&gt; | &lt;a href="http://digg.com/submit?phase=2&amp;amp;url=http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx&amp;amp;title=Classic ASP on IIS7&amp;amp;topic=Classic ASP"&gt;digg it!&lt;/a&gt; | &lt;a href="http://reddit.com/submit?url=http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx&amp;amp;title=Classic ASP on IIS7"&gt;reddit!&lt;/a&gt; | &lt;a href="http://www.dotnetkicks.com/submit/?url=http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx&amp;amp;title=Classic ASP on IIS7"&gt;kick it!&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx&amp;amp;title=Classic ASP&amp;amp;top=1"&gt;live it!&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=1718507" width="1" height="1"&gt;</description><category domain="http://blogs.iis.net/bills/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.iis.net/bills/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://blogs.iis.net/bills/archive/tags/Compatibility/default.aspx">Compatibility</category><category domain="http://blogs.iis.net/bills/archive/tags/IIS+News+Item/default.aspx">IIS News Item</category><category domain="http://blogs.iis.net/bills/archive/tags/Developers/default.aspx">Developers</category><category domain="http://blogs.iis.net/bills/archive/tags/ASP/default.aspx">ASP</category></item><item><title>ColdFusion on IIS7</title><link>http://blogs.iis.net/bills/archive/2007/03/06/coldfusion-on-iis7.aspx</link><pubDate>Tue, 06 Mar 2007 15:42:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:1607389</guid><dc:creator>bills</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/bills/rsscomments.aspx?PostID=1607389</wfw:commentRss><comments>http://blogs.iis.net/bills/archive/2007/03/06/coldfusion-on-iis7.aspx#comments</comments><description>Back in the early nineties, one of the first scripting languages I learned to build web applications with was ColdFusion.  It was a lot of fun!  In some ways it is a great way to build your first web site since it is so simple, so much like HTML, yet very powerful.  I'm sure ColdFusion has come a long way since I first used it. &lt;div&gt;&lt;br class="khtml-block-placeholder"&gt;&lt;/div&gt;&lt;div&gt;In June of 2005 I was invited to give a keynote at &lt;a href="http://cfunited.com/2005/speakers.cfm" target="_blank"&gt;CFUnited&lt;/a&gt;, one of the premier ColdFusion conferences around.  It was a fun, and early preview of ColdFusion running on early alpha builds of IIS7.  I remember hacking the frankenstein build together with a few private fixes from the dev team, and some custom tweaks to the configuration system, and then holding my breath as I went on stage to show off how some of the new, cool capabilities of IIS7 we were dreaming could help ColdFusion developers.  Luckily, all the demos worked and the talk went off without a hitch.  &lt;div&gt;&lt;br class="khtml-block-placeholder"&gt;&lt;/div&gt;&lt;div&gt;Fast forward almost two years, and it is fun to see ColdFusion developers getting the product in Vista and writing about it.  If you are looking for more information on how to get ColdFusion running on Vista and IIS7, check out this article:  &lt;a href="http://www.communitymx.com/content/article.cfm?page=1&amp;amp;cid=224AA" target="_blank"&gt;http://www.communitymx.com/content/article.cfm?cid=224AA&lt;/a&gt; by &lt;a href="http://www.communitymx.com/author.cfm?cid=1428" target="_blank"&gt;Heidi Bautista&lt;/a&gt;.  It provides a great step-by-step overview of how to get rocking on IIS7. &lt;/div&gt;&lt;/div&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=1607389" width="1" height="1"&gt;</description><category domain="http://blogs.iis.net/bills/archive/tags/Compatibility/default.aspx">Compatibility</category><category domain="http://blogs.iis.net/bills/archive/tags/Community/default.aspx">Community</category><category domain="http://blogs.iis.net/bills/archive/tags/Developers/default.aspx">Developers</category></item><item><title>loadUserProfile and IIS7 - understanding temporary directory failures</title><link>http://blogs.iis.net/bills/archive/2006/10/18/loadUserProfile-and-IIS7-_2D00_-understanding-temporary-directory-failures.aspx</link><pubDate>Wed, 18 Oct 2006 15:47:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:1432879</guid><dc:creator>bills</dc:creator><slash:comments>18</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/bills/rsscomments.aspx?PostID=1432879</wfw:commentRss><comments>http://blogs.iis.net/bills/archive/2006/10/18/loadUserProfile-and-IIS7-_2D00_-understanding-temporary-directory-failures.aspx#comments</comments><description>&lt;p&gt;I've noticed quite a few people running into temporary directory permission issues.&amp;nbsp; The &lt;a href="http://blogs.iis.net/bills/archive/2006/09/19/How-to-install-PHP-on-IIS7-_2800_RC1_2900_.aspx"&gt;PHP blog post&lt;/a&gt; I made last month is one example of this issue, there are also &lt;a href="http://forums.iis.net/thread/1422841.aspx"&gt;several&lt;/a&gt; &lt;a href="http://forums.iis.net/thread/1417629.aspx"&gt;forum&lt;/a&gt; &lt;a href="http://forums.iis.net/thread/1415201.aspx"&gt;posts&lt;/a&gt;&amp;nbsp;related to ASP &amp;amp; Access database failures, where the reported failure is:&lt;/p&gt;&lt;p&gt;&lt;i&gt;Microsoft JET Database Engine error '80004005'&lt;br&gt;Unspecified error&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Not a very helpful error, to be sure.&amp;nbsp; It turns out all of these cases have a similar underlying cause:&amp;nbsp; &lt;b&gt;the effective user of the web application (including the anonymous user&amp;nbsp;for unauthenticated requests) can not effectively write to the temporary directory.&lt;/b&gt;&amp;nbsp; What changed in IIS7 and why did this always work before?&lt;/p&gt;&lt;p&gt;With IIS6, all worker processes, regardless of which the process identity was configured, used to C:\windows\temp as the temporary directory.&amp;nbsp; More specifically, none of the worker processes loaded their 'user profile' by default, causing all of them to use c:\windows\temp as a temporary directory.&amp;nbsp; Windows allows all users read/write/creator privledges on this directory, which allowed things to 'just work'.&amp;nbsp; The negative side effect of this is that all AppPools are effectively sharing the same temporary directory by default, which could lead to cross-appPool&amp;nbsp;information disclosure.&amp;nbsp; &lt;/p&gt;&lt;p&gt;With IIS7, we've chosen a more secure default and now load user profile by default for all application pools.&amp;nbsp; Unfortunately, the temporary directory underneath the user directory (for example - %windir%\serviceprofiles\networkservice\AppData\Local\Temp for the default NetworkService identity we use for DefaultAppPool) is not writable by anyone other than NetworkService by default.&lt;/p&gt;&lt;p&gt;There are two ways to workaround this.&amp;nbsp; First, I recommend that ACL the NetworkService temporary directory to allow whichever users read/write/creator privs that you want to allow access so that you still have the benefits of loading a user profile and separating&amp;nbsp;temp&amp;nbsp;directories per appPool.&amp;nbsp; This can easily be done on the command line like this:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;i&gt;icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant Users:(CI)(S,WD,AD,X)&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant "CREATOR OWNER":(OI)(CI)(IO)(F)&lt;/i&gt; &lt;/p&gt;&lt;p&gt;This allows every user to create files and directories (WD = Write to Directory, AD = Add Directory, X = Execute, S = Synchronize). The user who creates them will be the “CREATOR OWNER” of the file/directory. &lt;/p&gt;&lt;p&gt;The “CREATOR OWNER” ACE allows this user to do whatever he wants with the file. Other users &lt;u&gt;can’t&lt;/u&gt; access these files/directories because they are not “CREATOR OWNER” of them. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The&amp;nbsp;other less favorable workaround&amp;nbsp;is to&amp;nbsp;disable the loadUserProfile setting on a per-appPool basis.&amp;nbsp; loadUserProfile is a boolean property&amp;nbsp;on an AppPool section, and can easily be set on the command line (for defaultAppPool) like this:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;i&gt;%windir%\system32\inetsrv\appcmd set config -section:applicationPools /[name='DefaultAppPool'].processModel.loadUserProfile:false&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;hope this helps -&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;bill&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=1432879" width="1" height="1"&gt;</description><category domain="http://blogs.iis.net/bills/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.iis.net/bills/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://blogs.iis.net/bills/archive/tags/Compatibility/default.aspx">Compatibility</category></item><item><title>Using Visual Web Developer with IIS7</title><link>http://blogs.iis.net/bills/archive/2006/09/18/Using-Visual-Web-Developer-with-IIS7.aspx</link><pubDate>Mon, 18 Sep 2006 23:42:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:1402933</guid><dc:creator>bills</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/bills/rsscomments.aspx?PostID=1402933</wfw:commentRss><comments>http://blogs.iis.net/bills/archive/2006/09/18/Using-Visual-Web-Developer-with-IIS7.aspx#comments</comments><description>&lt;p&gt;I've been using the &lt;a href="http://www.asp.net/downloads/default.aspx?tabid=62" target="_blank"&gt;free version&lt;/a&gt; of Visual Studio for web development - &lt;a href="http://msdn.microsoft.com/vstudio/express/vwd/default.aspx" target="_blank"&gt;Visual Web Developer&lt;/a&gt; Express Edition - for a while now and&amp;nbsp;I really like it.&amp;nbsp; In my opinion it is leagues ahead of previous Visual Studio releases targeted at Web development.&amp;nbsp; I still can't get that nasty taste of Visual Interdev v1 out of my mouth. ;)&lt;/p&gt;&lt;p&gt;Anyway, Bradley, from the Visual Web Developer team, just posted a few tips for getting Visual Web Developer working with Vista RC1 and IIS7.&amp;nbsp; See his post here:&amp;nbsp; &lt;a href="http://blogs.msdn.com/webdevtools/archive/2006/09/18/761206.aspx"&gt;http://blogs.msdn.com/webdevtools/archive/2006/09/18/761206.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Thanks Bradley!&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=1402933" width="1" height="1"&gt;</description><category domain="http://blogs.iis.net/bills/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.iis.net/bills/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.iis.net/bills/archive/tags/Compatibility/default.aspx">Compatibility</category></item></channel></rss>