<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.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/"><channel><title>Scott Forsyth&amp;#39;s WebLog</title><link>http://weblogs.asp.net/owscott/default.aspx</link><description>Postings on IIS, ASP.NET, SQL Server, Webfarms and general system admin.</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Upcoming Speaking Engagements</title><link>http://weblogs.asp.net/owscott/archive/2008/05/05/upcoming-speaking-engagements.aspx</link><pubDate>Tue, 06 May 2008 03:47:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6161368</guid><dc:creator>OWScott</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/rsscomments.aspx?PostID=6161368</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/commentapi.aspx?PostID=6161368</wfw:comment><comments>http://weblogs.asp.net/owscott/archive/2008/05/05/upcoming-speaking-engagements.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;There are some exciting events coming up around the Charlotte area which I'll be speaking at.&amp;nbsp; Next weekend is the Charlotte Code Camp Spring 2008.&amp;nbsp; I'll be speaking on what is currently fresh on my mind, and what I believe is very applicable to developers today.&amp;nbsp; The session is titled "What every developer needs to know about IIS 7".&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;Here's the Code Camp agenda: &lt;A href="http://www.developersguild.org/Default.aspx?tabid=248"&gt;http://www.developersguild.org/Default.aspx?tabid=248&lt;/A&gt;&amp;nbsp; For anyone in the area, I encourage you to register before it fills.&lt;/P&gt;
&lt;P mce_keep="true"&gt;IIS 7 has many new changes that affect the developer this time around.&amp;nbsp; With IIS 6, mostly just the server administrator benefited.&amp;nbsp; But, with IIS 7, there are many changes that apply to the developer.&amp;nbsp; There are deployment changes, web.config configuration changes, the new system.webServer which applies to all types of files, distributed configuration, better debugging and troubleshooting tools, new remote management tools and those are just the most obvious.&amp;nbsp; The list goes on when you talk about the modular framework, extensibility, shared configuration for webfarms, security and FTP changes just to name a few.&amp;nbsp; I'll be speaking this very topic.&lt;/P&gt;
&lt;P mce_keep="true"&gt;The other event in this area is July 8th in Ashville.&amp;nbsp; There is a new user group starting up next week, May 13th.&amp;nbsp; (&lt;A href="http://wncdotnet.com/"&gt;http://wncdotnet.com/&lt;/A&gt;)&amp;nbsp; &lt;A class="" title="Brian Hitney" href="http://www.structuretoobig.com/home/about.aspx" mce_href="http://www.structuretoobig.com/home/about.aspx"&gt;Brian Hitney&lt;/A&gt; will be presenting on "Building Next Generation Web Applications with VS2008" for the opening night.&amp;nbsp; &lt;A class="" title="Dave Kolb" href="http://dotnetcodeslingers.com/" mce_href="http://dotnetcodeslingers.com/"&gt;Dave Kolb&lt;/A&gt; asked if I would speak at&amp;nbsp;one of the following events.&amp;nbsp; I can't in June because I'll be at TechEd 2008, but I will for July 8th.&amp;nbsp; Ashville is a beautiful area about 2 hours North of where I live so I'll take my wife and kids and stay the night.&amp;nbsp; We're all looking forward to the trip.&amp;nbsp; I'll be covering&amp;nbsp;a similar session as I will at Code Camp.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6161368" width="1" height="1"&gt;</description></item><item><title>Enabling XP and Windows Server 2003 to Search All Files Types</title><link>http://weblogs.asp.net/owscott/archive/2008/04/04/enabling-xp-and-windows-server-2003-to-search-all-files-types.aspx</link><pubDate>Fri, 04 Apr 2008 14:34:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6065055</guid><dc:creator>OWScott</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/rsscomments.aspx?PostID=6065055</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/commentapi.aspx?PostID=6065055</wfw:comment><comments>http://weblogs.asp.net/owscott/archive/2008/04/04/enabling-xp-and-windows-server-2003-to-search-all-files-types.aspx#comments</comments><description>&lt;P&gt;Searching for file content on your computer or server is a common task and one where you would expect accurate results.&amp;nbsp; You, like so many of us, may have assumed that but found different results.&lt;/P&gt;
&lt;P&gt;Within Windows 2000 Server, if you entered something in the windows search dialog and clicked "Find", it would find it.&amp;nbsp; But, with Windows Server 2003 or Windows XP, there are a lot of searches that would come up empty, even if you were sure that you had files with the words in them that you were searching for.&lt;/P&gt;
&lt;P&gt;The reason that the results are different in Windows Server 2003 and Windows XP is because Microsoft decided to only include certain types of files in the search to speed up the search.&amp;nbsp; Even if you set the file type as "All Files and Folders", it ignores a large amount of files when doing a search.&amp;nbsp; The reasoning is that it takes a long time to search every file on the server and binary type files like a jpg or gif or exe don't need to be searched for a plain text search term.&amp;nbsp; Why include them if they aren’t going to turn up any results anyway.&lt;/P&gt;
&lt;P&gt;While I agree with it in part, if I want to find a file based on a keyword, I want it to search every file so that I can be sure that my search is accurate. &lt;/P&gt;
&lt;P&gt;The fix is fairly easy as long as you don't mind making a registry change. My preferred method is to set Windows to index every file, even if it's an unknown exception.&amp;nbsp; This is done by adding or changing a DWORD called FilterFilesWithUnknownExtensions in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ContentIndex.&amp;nbsp; Set it to 1. (1 for on, 0 for off)&lt;/P&gt;
&lt;P&gt;In fact I added it as part of the build process here at ORCS Web when Windows Server 2003 first came out a few years ago.&amp;nbsp; The search on every server on our network will search every file type.&lt;/P&gt;
&lt;P&gt;Here is how I prefer to do it.&amp;nbsp; Create a file called AddIndexingToAllFiles.reg (Or, I just call it abc.reg since I delete the file immediately after using it).&amp;nbsp; Then put the following in it:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;Windows Registry Editor Version 5.00 &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ContentIndex] &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;"FilterFilesWithUnknownExtensions"=dword:00000001 &lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Save the file on your desktop and double click on it.&amp;nbsp; After accepting the prompt and warning, the entry will be added to your registry.&amp;nbsp; You can delete the registry file since you're done applying it.&lt;/P&gt;
&lt;P&gt;Here's a good Microsoft KB article on this with further details: &lt;A href="http://support.microsoft.com/default.aspx?scid=KB;EN-US;309173"&gt;http://support.microsoft.com/default.aspx?scid=KB;EN-US;309173&lt;/A&gt;.&amp;nbsp; It also explains how you can add specific extensions rather than just indexing all files if you prefer to do that.&lt;/P&gt;
&lt;P&gt;Note: This is for Windows XP and Windows Server 2003.&amp;nbsp; The rules change again in Vista with a whole new search engine and method.&amp;nbsp; Here is a long discussion between Microsoft and some not-so-happy people discussing how Vista works: &lt;A href="http://windowsvistablog.com/blogs/windowsvista/pages/advanced-search-techniques.aspx"&gt;http://windowsvistablog.com/blogs/windowsvista/pages/advanced-search-techniques.aspx&lt;/A&gt;.&lt;BR&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6065055" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/owscott/archive/tags/Windows+XP/default.aspx">Windows XP</category><category domain="http://weblogs.asp.net/owscott/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>tsadmin command change in Windows Server 2008</title><link>http://weblogs.asp.net/owscott/archive/2008/04/03/tsadmin-command-change-in-windows-server-2008.aspx</link><pubDate>Thu, 03 Apr 2008 16:18:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6062864</guid><dc:creator>OWScott</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/rsscomments.aspx?PostID=6062864</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/commentapi.aspx?PostID=6062864</wfw:comment><comments>http://weblogs.asp.net/owscott/archive/2008/04/03/tsadmin-command-change-in-windows-server-2008.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;I use Remote Desktop all the time to manage servers remotely, and often I join other people's sessions to troubleshoot something with them, or walk through something or other.&lt;/P&gt;
&lt;P mce_keep="true"&gt;In Windows Server 2003 (and Windows 2000 Server), the easy way to start up Terminal Services Manager is Start -&amp;gt; Run -&amp;gt; 'tsadmin' -&amp;gt; [Enter].&amp;nbsp; This calls us Terminal Services Manager where I can right-click on a user and click 'Remote Control', and if they approve, I can join their session.&lt;/P&gt;
&lt;P mce_keep="true"&gt;This doesn't work in Windows Server 2008 anymore.&amp;nbsp; The change is ever so slight.&amp;nbsp; In Windows Server 2003 the tool was tsadmin.exe, so typing 'tsadmin' was all that was required to start the tool.&amp;nbsp; Now, in Windows Server 2008, this has been moved to a MMC snap-in and is called tsadmin.msc (plus tsadmin.dll is used silently).&lt;/P&gt;
&lt;P mce_keep="true"&gt;So, to spin up Terminal Services Manager in Windows Server 2003, you can click on Start and your cursor focus will already be in the search box.&amp;nbsp; Type 'tsadmin.msc' and press [Enter] and you'll be in Terminal Services Manager.&lt;/P&gt;
&lt;P mce_keep="true"&gt;If you really don't want to type the '.msc' each time, you could create a batch file to do it for you.&amp;nbsp; Create a file in c:\windows\system32 (which is in the system path already), call it tsadmin.bat and type 'tsadmin.msc' (without the quotes) in the body of the file.&amp;nbsp; Save it and you'll be set.&amp;nbsp; The disadvantage of doing this though is that you won't be practiced up on typing tsadmin.msc on fresh servers, so personally I prefer to just remember the extra .msc now on Windows Server 2008.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Note: If you don't type this often enough to remember 'tsadmin.msc', this has always been available from the Administrative Tools folder.&amp;nbsp; In Windows Server 2003/2000 it's directly under Administrative Tools.&amp;nbsp; In Windows Server 2008 it's one folder deeper under 'Terminal Services'.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6062864" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/owscott/archive/tags/Remote+Desktop/default.aspx">Remote Desktop</category></item><item><title>IIS7 blocks viewing access to files in bin and other asp.net folders</title><link>http://weblogs.asp.net/owscott/archive/2008/03/05/iis7-blocks-viewing-access-to-files-in-bin-and-other-asp-net-folders.aspx</link><pubDate>Wed, 05 Mar 2008 21:31:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5922172</guid><dc:creator>OWScott</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/rsscomments.aspx?PostID=5922172</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/commentapi.aspx?PostID=5922172</wfw:comment><comments>http://weblogs.asp.net/owscott/archive/2008/03/05/iis7-blocks-viewing-access-to-files-in-bin-and-other-asp-net-folders.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;I was just asked to help someone troubleshoot a site that worked fine on Windows Server 2003 / IIS6 but didn't work on Windows Server 2008 / IIS7.&amp;nbsp; A file was in a folder under the bin folder on the site and displayed an error when trying to view the page.&amp;nbsp; The path looked something like this:&lt;/P&gt;
&lt;P mce_keep="true"&gt;http://www.sitename.com/subfolder/bin/debug/file.xml&lt;/P&gt;
&lt;P mce_keep="true"&gt;The subfolder wasn't marked as an application, although that doesn't really matter.&amp;nbsp; The point is that since /bin/ was in the path somewhere, IIS7 wouldn't allow the file.xml to be displayed.&amp;nbsp; It served up a 404.2 error saying file or directory not found.&lt;/P&gt;
&lt;H2&gt;404 - File or directory not found.&lt;/H2&gt;
&lt;H3&gt;The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.&lt;/H3&gt;
&lt;P mce_keep="true"&gt;Since I knew that it worked in IIS6, I knew that it wasn't asp.net that was blocking it, so I looked in applicationHost.config and found the following under the &amp;lt;requestFiltering&amp;gt; section:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;hiddenSegments applyToWebDAV="true"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add segment="web.config" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add segment="bin" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add segment="App_code" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add segment="App_GlobalResources" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add segment="App_LocalResources" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add segment="App_WebReferences" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add segment="App_Data" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add segment="App_Browsers" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/hiddenSegments&amp;gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;So, IIS7 now blocks those key folders and doesn't allow them to be seen.&amp;nbsp; To the outside world, any page in any of these folders appears to not exist.&lt;/P&gt;
&lt;P mce_keep="true"&gt;There may be times when you really do want to display the page, as in this particular case.&amp;nbsp; Not to worry, it can be changed easily enough.&amp;nbsp; This setting in on purpose though, so you usually shouldn't remove it for the whole site.&lt;/P&gt;
&lt;P mce_keep="true"&gt;You can use AppCmd or do it manually from applicationHost.config or web.config.&amp;nbsp; Since requestFiltering is allowed to be set at the site or folder level by default, it's probably best to set a web.config file in the folder that you want to allow.&lt;/P&gt;
&lt;P mce_keep="true"&gt;To do this, create a web.config file in your folder and type or paste the following into it.&amp;nbsp; I should look something like this:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;BR&gt;&amp;lt;configuration&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; &amp;lt;system.webServer&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;security&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;requestFiltering&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;hiddenSegments&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;remove segment="bin" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/hiddenSegments&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/requestFiltering&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/security&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/system.webServer&amp;gt;&lt;BR&gt;&amp;lt;/configuration&amp;gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;If you want to make the change to your applicationHost.config file instead, you can do it by adding a location tag to the bottom of the file (well, almost the bottom - along with the other location tags) like this:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;location path="sitename.com/subfolder/bin/debug"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;system.webServer&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;security&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;requestFiltering&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;hiddenSegments&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;remove segment="bin" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/hiddenSegments&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/requestFiltering&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/security&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/system.webServer&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/location&amp;gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;You can do this using AppCmd instead.&amp;nbsp; Just drop to the command prompt and type the following: (Be sure to change the paths to the correct page before running this.)&lt;/P&gt;
&lt;P mce_keep="true"&gt;C:\Windows\System32\inetsrv\appcmd.exe set config "sitename.com/subfolder/bin/debug" -section:system.webServer/security/requestFiltering /-hiddenSegments.[segment='bin']&lt;/P&gt;
&lt;P mce_keep="true"&gt;After making this change, you will be able to view pages normally, even if they have /bin in the site path.&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5922172" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/owscott/archive/tags/IIS/default.aspx">IIS</category><category domain="http://weblogs.asp.net/owscott/archive/tags/IIS7/default.aspx">IIS7</category></item><item><title>Professional IIS 7 - Best IIS 7.0 book</title><link>http://weblogs.asp.net/owscott/archive/2008/02/18/professional-iis-7-best-iis-7-0-book.aspx</link><pubDate>Mon, 18 Feb 2008 17:41:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5815195</guid><dc:creator>OWScott</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/rsscomments.aspx?PostID=5815195</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/commentapi.aspx?PostID=5815195</wfw:comment><comments>http://weblogs.asp.net/owscott/archive/2008/02/18/professional-iis-7-best-iis-7-0-book.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;The title is a bit biased since I co-authored the book, but Professional IIS 7 will be out in print within a couple weeks and I highly recommend picking up a copy!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://www.wrox.com/WileyCDA/WroxTitle/productCd-0470097825.html" border="0"&gt;&lt;IMG alt="Professional IIS 7" src="http://media.wiley.com/product_data/coverImage/25/04700978/0470097825.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;I've&amp;nbsp;had my head buried in this book for months&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-size: 11.0pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;—&lt;/SPAN&gt;spending more time that I realized&amp;nbsp;possible, but learning IIS 7 inside out and ultimately enjoying it.&amp;nbsp; (Although I have to admit that sometimes at 4:00 in the morning, trying to hit deadlines, I'm not sure that I realized that I was enjoying it. :))&lt;/P&gt;
&lt;P mce_keep="true"&gt;The book will be in bookstores and shipping online during the 2nd week of March 2008.&amp;nbsp; You can order it directly from Wrox: &lt;A href="http://www.wrox.com/WileyCDA/WroxTitle/productCd-0470097825.html"&gt;http://www.wrox.com/WileyCDA/WroxTitle/productCd-0470097825.html&lt;/A&gt;&amp;nbsp;or from &lt;A class="" title=Amazon.com href="http://www.amazon.com/gp/product/0470097825/ref=s9_asin_image_1_subs_19_35_28_12_7?pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_s=center-2&amp;amp;pf_rd_r=0PYFF7P721MMR6WZP3PG&amp;amp;pf_rd_t=101&amp;amp;pf_rd_p=278240301&amp;amp;pf_rd_i=507846" target=_blank mce_href="http://www.amazon.com/gp/product/0470097825/ref=s9_asin_image_1_subs_19_35_28_12_7?pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_s=center-2&amp;amp;pf_rd_r=0PYFF7P721MMR6WZP3PG&amp;amp;pf_rd_t=101&amp;amp;pf_rd_p=278240301&amp;amp;pf_rd_i=507846"&gt;Amazon.com&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;We had a great team of authors on this book, each writing in areas that they knew best, and all delivering excellent content that is both knowledgeable, but also practical, based on their experience.&amp;nbsp; The author list is: Ken Schaefer, Jeff Cochran, Scott Forsyth, Rob Baugh, Mike Everest, Dennis Glendenning.&lt;/P&gt;
&lt;P mce_keep="true"&gt;I wrote on application pool administration, remote delegation, webfarm management and configuration, programmatic configuration and administration and diagnostics and troubleshooting.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Be sure to pick up a copy and tell all of your IIS friends about it too!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5815195" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/owscott/archive/tags/IIS/default.aspx">IIS</category></item><item><title>Application vs. AppDomain</title><link>http://weblogs.asp.net/owscott/archive/2007/09/02/application-vs-appdomain.aspx</link><pubDate>Sun, 02 Sep 2007 14:21:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:3712473</guid><dc:creator>OWScott</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/rsscomments.aspx?PostID=3712473</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/commentapi.aspx?PostID=3712473</wfw:comment><comments>http://weblogs.asp.net/owscott/archive/2007/09/02/application-vs-appdomain.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;A question was asked on a forum that I frequent which I thought was worth writting a blog about.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Q: What is the difference between an application and an Appdomain?&amp;nbsp; I understand from my research so far that an Appdomain is a container within which ASPX runs and that Apppool is a process that starts the w3wp.exe worker process within which ASP applications run.&lt;/P&gt;
&lt;P mce_keep="true"&gt;A: That's a good question.&amp;nbsp; Here are some key differences:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;An application is an IIS term, but it's one that ASP.NET utilizes.&amp;nbsp; Essentially it creates a sandbox, or a set of boundaries to separate different sites, or parts of sites, from the others.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;An AppDomain is a .NET term.&amp;nbsp; (In IIS7, AppDomains play a larger role within IIS, but for the most part it's an ASP.NET term)&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;An AppDomain contains InProc&amp;nbsp;session state (the default session state mode).&amp;nbsp; So if an AppDomain is killed/recycled, all of your session state information will be lost. (if you are using the default InProc session state)&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;Applications can have multiple AppDomains in them although often times there is a one-to-one relationship between them.&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;In IIS6 and greater, there is the option of creating groups, or "pools" of applications that can be bundled together or separated; however the server administer decides.&amp;nbsp; These are called Application Pools.&amp;nbsp; Each app pool runs under its own w3wp.exe worker process.&amp;nbsp; &lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;In IIS, it's easy to see an application.&amp;nbsp; A new website is a separate application and any subfolder can be marked as an application.&amp;nbsp; When they are, the icon beside the folder turnes into a picture of some gears.&amp;nbsp; By right-clicking on the folder, you have the option of marking a folder as an application or removing it as an application, if it already is one.&amp;nbsp; Also, in IIS6, in the Application Pools section, you can see all of the applications and which app pool they live under.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;ASP.NET, on the other hand, doesn't give much visibility into AppDomains,&amp;nbsp;at least not from any visual tools.&amp;nbsp; This is done behind the scenes.&amp;nbsp; Programmatically you can create them, tear them down or see a list of all running AppDomains.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;You can recycle an application from IIS.&amp;nbsp; In IIS5, you can't do it directly unless you recycle the entire web server, but in IIS6 and greater, you can recycle the application pool that the application lives under.&amp;nbsp;&amp;nbsp;It will gracefully die off and a new application will start up to replace it.&amp;nbsp; Or, to word it another way, another w3wp.exe worker process will be started and then the old one will die off after it completes any currently running page requests.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;You can recycle an AppDomain in ASP.NET through the 'touch trick'.&amp;nbsp; There are a few ways to do it, but the most straight forward is to edit your web.config file in notepad and add a space to an insignificant place.&amp;nbsp; Then save the file.&amp;nbsp; This will cause the AppDomain to recycle.&amp;nbsp; This *does not* touch the IIS application though.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Recycling an AppDomain will come pretty close to starting ASP.NET fresh again for that particular ASP.NET application, so although it doesn't recycle the apppool, it can give ASP.NET a fresh start in many situations.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=3712473" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/owscott/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>VS 2008 and .NET 3.5 Beta 2 released</title><link>http://weblogs.asp.net/owscott/archive/2007/07/26/vs-2008-and-net-3-5-beta-2-released.aspx</link><pubDate>Thu, 26 Jul 2007 21:42:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:3288226</guid><dc:creator>OWScott</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/rsscomments.aspx?PostID=3288226</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/commentapi.aspx?PostID=3288226</wfw:comment><comments>http://weblogs.asp.net/owscott/archive/2007/07/26/vs-2008-and-net-3-5-beta-2-released.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Beta 2 of VS 2008 and .NET 3.5 which was just released a few minutes ago and is available for download.&amp;nbsp; I know I've been really quiet on my blog for a while.&amp;nbsp; I'm still around, just haven't freed up my time enough to do the blogging that I know I should.&amp;nbsp; I figured I would break my silence and mention this release.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://weblogs.asp.net/scottgu/archive/2007/07/26/vs-2008-and-net-3-5-beta-2-released.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2007/07/26/vs-2008-and-net-3-5-beta-2-released.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Scott Guthrie's blog post is a must read.&amp;nbsp; Some key features in VS 2008 and .NET 3.5 are:&lt;/P&gt;
&lt;P mce_keep="true"&gt;- LINQ&lt;BR&gt;- JavaScript IntelliSense and Debugging&lt;BR&gt;- AJAX integrated&lt;BR&gt;- Great CSS support&lt;BR&gt;- Development can target different versions of the framework&lt;BR&gt;- much more&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=3288226" width="1" height="1"&gt;</description></item><item><title>Registry change for perfmon and PID data</title><link>http://weblogs.asp.net/owscott/archive/2007/03/19/registry-change-for-perfmon-and-pid-data.aspx</link><pubDate>Tue, 20 Mar 2007 02:34:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:2065109</guid><dc:creator>OWScott</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/rsscomments.aspx?PostID=2065109</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/commentapi.aspx?PostID=2065109</wfw:comment><comments>http://weblogs.asp.net/owscott/archive/2007/03/19/registry-change-for-perfmon-and-pid-data.aspx#comments</comments><description>&lt;p&gt;Perfmon is a great tool for mining performance data on a server and has a slew of objects and counters to expose most any type of data.&lt;/p&gt;&lt;p&gt;As nice as it is, there is one thing that can be difficult to do, and that is to view data for temporary objects.&amp;nbsp; For example IIS worker processes only live until the next recycle or restart.&amp;nbsp; If there are many worker processes on the server, the default view doesn&amp;#39;t allow you to tell which is which.&lt;/p&gt;&lt;p&gt;&lt;img alt="PIDChange Before" border="0" height="353" src="http://www.orcsweb.com/images/articles_sf/perfmonPIDChange-before.gif" style="width: 500px; height: 353px" title="PIDChange Before" width="500" /&gt;&lt;/p&gt;&lt;p&gt;Notice in the screenshot that there are three w3wp.exe worker processes on this server in the section on the right, but you can&amp;#39;t tell from this view which belongs to which worker process.&lt;/p&gt;&lt;p&gt;A co-worker of mind pointed me to this great registry setting today that takes care of this.&amp;nbsp; &lt;a href="http://support.microsoft.com/kb/281884"&gt;http://support.microsoft.com/kb/281884&lt;/a&gt;.&amp;nbsp; Through a simple registry change, you can view the PID of each worker process within perfmon.&amp;nbsp; It can be obtained without the registry change, but through extra effort.&lt;/p&gt;&lt;p&gt;As long as you know the PID, you can match it up to the app pool easily.&amp;nbsp; In IIS6, you can use &lt;a href="http://weblogs.asp.net/owscott/archive/2004/09/21/Which-w3wp.exe-process-belongs-to-which-App-Pool-in-IIS6.aspx" title="iisapp.vbs"&gt;iisapp.vbs&lt;/a&gt;.&amp;nbsp; In IIS7, you can use &amp;quot;appcmd list wp&amp;quot;.&amp;nbsp; Of course Task Manager is a key tool that is often used in parallel to show active PIDs, worker processes and various other real-time counters.&lt;/p&gt;&lt;p&gt;The registry change is quick and painless.&amp;nbsp; In fact, after making the change, I closed the Add Counters windows in perfmon and opened it again and the PID was there immediately.&amp;nbsp; No restart necessary.&lt;/p&gt;&lt;p&gt;&lt;img alt="PIDChange after" border="0" height="352" src="http://www.orcsweb.com/images/articles_sf/perfmonPIDChange-after.gif" style="width: 500px; height: 352px" title="PIDChange after" width="500" /&gt;&lt;/p&gt;&lt;p&gt;If you want to save a click or two, you can follow the following steps instead of doing the change manually:&lt;/p&gt;&lt;p&gt;Take the following indented text and save to your desktop and call it showPID.reg.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Windows Registry Editor Version 5.00&lt;/p&gt;&lt;p&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance]&lt;br /&gt;&amp;quot;ProcessNameFormat&amp;quot;=dword:00000002&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Double click, acknowledge the prompt and you&amp;#39;re done!&lt;/p&gt;&lt;p&gt;Disclaimer: Any changes to the registry needs to be done with an awareness of the impact.&amp;nbsp; There is always the chance that some tool, or another administrator, needs this to be&amp;nbsp;at the default setting.&amp;nbsp; While it is safe in most environments, I can&amp;#39;t be held liable for any negative impact that this change has.&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2065109" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/owscott/archive/tags/Performance+Tuning/default.aspx">Performance Tuning</category></item><item><title>1000MB is not 1GB</title><link>http://weblogs.asp.net/owscott/archive/2007/02/27/1000mb-is-not-1gb.aspx</link><pubDate>Tue, 27 Feb 2007 14:12:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1822568</guid><dc:creator>OWScott</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/rsscomments.aspx?PostID=1822568</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/commentapi.aspx?PostID=1822568</wfw:comment><comments>http://weblogs.asp.net/owscott/archive/2007/02/27/1000mb-is-not-1gb.aspx#comments</comments><description>&lt;p&gt;I had an interesting situation come up yesterday that I thought would be worth writing about.&amp;nbsp; &lt;/p&gt;&lt;p&gt;As a web host here at &lt;a href="http://www.orcsweb.com/"&gt;www.orcsweb.com&lt;/a&gt;,&amp;nbsp;we offer disk space, but obviously need to set some type of limits.&amp;nbsp; One of our clients had an allotment of 1,140 MB.&amp;nbsp; (That is an odd number, but that&amp;#39;s what it worked out to.)&amp;nbsp; While working with him a couple of weeks ago, I checked his disk usage by right-clicking on the folder in windows explorer and clicking on properties.&amp;nbsp; The space that it told me was 1.14GB, which I relayed on to the client.&amp;nbsp; So far so good, it seemed that he was right at his limit.&lt;/p&gt;&lt;p&gt;Yesterday, an automated process checked the disk usage on his site, calculated his usage at 1,170MB and sent him an email asking for him to address the disk space or increase his allotment.&amp;nbsp; He was confused, and rightfully so, because I had just told him that he was at 1.14GB, and he was confident that nothing was added since our conversation.&lt;/p&gt;&lt;p&gt;So, I started digging.&amp;nbsp; I checked the database information which is what the script utilized and say that it has been at 1,170MB every day for a while.&amp;nbsp; So, I pulled apart our automated script to see why it said 1,170MB but windows explorer/properties said 1.14GB.&amp;nbsp; I even created a 5 line&amp;nbsp;VBScript script using FileSystemObject to see what it returned, and sure enough, it returned 1,170MB.&amp;nbsp; I was confused and looked at the numbers for a bit, then realized that I had overlooked the obvious.&amp;nbsp; It&amp;#39;s something I know well, but it didn&amp;#39;t click at first.&lt;/p&gt;&lt;p&gt;&lt;img alt="Disk Space Usage" border="0" height="172" src="http://www.orcsweb.com/images/articles_sf/diskspace.jpg" style="width: 334px; height: 172px" title="Disk Space Usage" width="334" /&gt;&lt;/p&gt;&lt;p&gt;1GB is actually 1024MB.&amp;nbsp; It&amp;#39;s not an even 1000.&amp;nbsp; People will often say that it&amp;#39;s 1000, but that&amp;#39;s just a rounded number.&amp;nbsp; In day to day situations, it may not even matter too much, people are often wondering about their usage in general terms, not something so precise.&amp;nbsp; But, in this case, one number was under his limit and one was over his limit so it was important to figure out the issue.&lt;/p&gt;&lt;p&gt;Check it out: The size is actually 1,227,418,765bytes, so we&amp;#39;ll take that&amp;nbsp;divided by&amp;nbsp;1024 (for KB)&amp;nbsp;divided by&amp;nbsp;1024 (for MB) and&amp;nbsp;divided by&amp;nbsp;1024 (for GB).&amp;nbsp; We get: 1.1431228.&amp;nbsp; That matches the size of 1.14GB shown.&amp;nbsp; Now, multiple that by 1024 and we get 1,170MB.&amp;nbsp; The&amp;nbsp;24MB that was lost in rounding made a big different in this case!&amp;nbsp;&lt;/p&gt;&lt;p&gt;So, nothing was wrong in the script, it calculated the information correctly, but from the windows explorer/properties view, the 1024 instead of 1000 made enough of a difference that it threw us off at first.&lt;/p&gt;&lt;p&gt;I was able to work out something on the disk space that worked for both of us and everyone is happy, plus this serves as a good reminder about the real difference between 1GB and 1000MB.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1822568" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/owscott/archive/tags/General/default.aspx">General</category></item><item><title>PowerShell Cheat Sheet</title><link>http://weblogs.asp.net/owscott/archive/2007/01/25/powershell-cheat-sheet.aspx</link><pubDate>Thu, 25 Jan 2007 21:50:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1473203</guid><dc:creator>OWScott</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/rsscomments.aspx?PostID=1473203</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/commentapi.aspx?PostID=1473203</wfw:comment><comments>http://weblogs.asp.net/owscott/archive/2007/01/25/powershell-cheat-sheet.aspx#comments</comments><description>&lt;p&gt;Here&amp;#39;s a must-have cheat sheet for PowerShell.&amp;nbsp; Jeffrey Snover has put together an excellent doc that is well worth printing off and keeping handy for anyone working with PowerShell:&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/powershell/archive/2007/01/24/powershell-cheat-sheet.aspx"&gt;http://blogs.msdn.com/powershell/archive/2007/01/24/powershell-cheat-sheet.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1473203" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/owscott/archive/tags/PowerShell/default.aspx">PowerShell</category></item><item><title>Clip - Saving command line and powershell output directly to the clipboard</title><link>http://weblogs.asp.net/owscott/archive/2006/12/15/clip-saving-command-line-and-powershell-output-directly-to-the-clipboard.aspx</link><pubDate>Sat, 16 Dec 2006 01:12:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1251008</guid><dc:creator>OWScott</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/rsscomments.aspx?PostID=1251008</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/commentapi.aspx?PostID=1251008</wfw:comment><comments>http://weblogs.asp.net/owscott/archive/2006/12/15/clip-saving-command-line-and-powershell-output-directly-to-the-clipboard.aspx#comments</comments><description>&lt;p&gt;Every once in a while I run across something so simple, yet so powerful, that I wonder why I&amp;#39;ve never heard of it before.&amp;nbsp; Today I came across one of those situations.&lt;/p&gt;&lt;p&gt;Within Windows Server&amp;nbsp;2003 and Vista, there is a command line and PowerShell parameter called &amp;quot;Clip&amp;quot;.&amp;nbsp; This allows you to output the command line results directly to the clipboard.&amp;nbsp; This is great if you need to output a large result, or even if you want to save the hassle of selecting text and copying to the clipboard when you could have done it in a single step.&lt;/p&gt;&lt;p&gt;It&amp;#39;s very simple, just pipe (|) to the CLIP command.&lt;/p&gt;&lt;p&gt;For example, let&amp;#39;s say I want to get a list of all IP addresses on a Windows Server 2003 box. (the server has dozens of IP addresses)&amp;nbsp; In the past I would often pipe the results to a text file and then open the text file and save the results to the clipboard.&amp;nbsp; Not anymore!&amp;nbsp; The command would be like this:&lt;/p&gt;&lt;p&gt;ipconfig /all | clip&lt;/p&gt;&lt;p&gt;Now I have the detailed ipconfig in my clipboard to be pasted wherever I want.&amp;nbsp; This works with large files and large output too.&amp;nbsp; Be careful of course that you don&amp;#39;t try to CLIP a 1000MB file!&amp;nbsp; &lt;/p&gt;&lt;p&gt;Here&amp;#39;s the help for clip:&lt;/p&gt;&lt;p&gt;CLIP&lt;/p&gt;&lt;p&gt;Description:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Redirects output of command line tools to the Windows clipboard.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; This text output can then be pasted into other programs.&lt;/p&gt;&lt;p&gt;Parameter List:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Displays this help message.&lt;/p&gt;&lt;p&gt;Examples:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DIR | CLIP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Places a copy of the current directory&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; listing into the Windows clipboard.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLIP &amp;lt; README.TXT&amp;nbsp;&amp;nbsp; Places a copy of the text from readme.txt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on to the Windows clipboard.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;And yes, I used CLIP to capture that help information, like so: clip /? | clip&lt;/p&gt;&lt;p&gt;What about Windows XP users?&amp;nbsp; CLIP was not included in Windows XP but you can get it easily enough.&amp;nbsp; If you have access to a Vista or Windows Server 2003 computer, just copy the clip.exe file from C:\%windir%\system32 folder to your system32 folder.&amp;nbsp; It will immediately work as expected.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1251008" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/owscott/archive/tags/Vista/default.aspx">Vista</category></item><item><title>Tool: Creating a custom MachineKey in ASP.NET</title><link>http://weblogs.asp.net/owscott/archive/2006/12/13/tool-creating-a-custom-machinekey-in-asp-net.aspx</link><pubDate>Thu, 14 Dec 2006 05:24:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1234877</guid><dc:creator>OWScott</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/rsscomments.aspx?PostID=1234877</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/commentapi.aspx?PostID=1234877</wfw:comment><comments>http://weblogs.asp.net/owscott/archive/2006/12/13/tool-creating-a-custom-machinekey-in-asp-net.aspx#comments</comments><description>&lt;p&gt;There are many times when it is worthwhile to create a custom machineKey for your web.config file.&amp;nbsp; This is worthwhile on a webfarm but also worthwhile on a stand-alone server so that your machineKey remains the same after an iisreset or application pool recycle.&amp;nbsp; &lt;/p&gt;&lt;p&gt;I&amp;#39;ve put together a simple tool that will generate a valid random machine key.&amp;nbsp; It will create a validationKey and decryptionKey which you can copy and paste into your web.config file.&amp;nbsp; This is random so there is virtually no chance of anyone else having the same keys.&lt;/p&gt;&lt;p&gt;I hope you enjoy!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.orcsweb.com/articles/aspnetmachinekey.aspx"&gt;http://www.orcsweb.com/articles/aspnetmachinekey.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1234877" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/owscott/archive/tags/IIS/default.aspx">IIS</category><category domain="http://weblogs.asp.net/owscott/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Vista and RDP6.0's Remote Desktop Prompt</title><link>http://weblogs.asp.net/owscott/archive/2006/11/10/Vista_2700_s-Remote-Desktop-Prompt.aspx</link><pubDate>Fri, 10 Nov 2006 14:50:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:901053</guid><dc:creator>OWScott</dc:creator><slash:comments>34</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/rsscomments.aspx?PostID=901053</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/commentapi.aspx?PostID=901053</wfw:comment><comments>http://weblogs.asp.net/owscott/archive/2006/11/10/Vista_2700_s-Remote-Desktop-Prompt.aspx#comments</comments><description>&lt;p&gt;I use Remote Desktop Client dozens of times per day to administer remote servers.&amp;nbsp; With Windows Vista, I get an ugly prompt when connecting to Windows Server 2003 and Windows 2000 Server machines saying:&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Remote Desktop cannot verify the identity of the computer you want to connect to.&amp;nbsp; This problem can occur if:&lt;/p&gt;&lt;p&gt;1) The remote computer is running a version of Windows that is earlier than Windows Vista.&lt;br /&gt;2) The remote computer is configured to support only the RDP security layer.&lt;/p&gt;&lt;p&gt;Contact your network administrator or the owner of the remote computer for assistance.&lt;/p&gt;&lt;p&gt;Do you want to connect anyway?&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;I know that the remote server is good, it&amp;#39;s in a memorized list of servers.&amp;nbsp; But it is Windows Server 2003 or Windows 2000 Server.&amp;nbsp; Although the prompt is correct, I don&amp;#39;t want to have to acknowledge that prompt over and over again.&amp;nbsp; &lt;/p&gt;&lt;p&gt;&lt;em&gt;Note: (added later)&amp;nbsp; The obvious answer that I was alerted to from a comment from Blandname is to do this per session:&amp;nbsp;click on the advanced tab in the Remote Desktop Connection tool and change the Authentication options to &amp;quot;Always connection, even if authentication fails&amp;quot;.&amp;nbsp; If you create your own RDP file, you can set it with &amp;quot;authentication level:i:0.&amp;quot;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;If you want to set this at the server level or find out more about this setting, read on.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;I did some digging using Process Monitor from &lt;a href="http://www.sysinternals.com/"&gt;www.sysinternals.com&lt;/a&gt;&amp;nbsp;(recently acquired by Microsoft) and found that the mstsc process was checking for some particular keys in the registry.&amp;nbsp; Two of them seemed possible candidates and after testing I confirmed that AuthenticationLevelOverride is the key that applies to this situation.&lt;/p&gt;&lt;p&gt;The registry key is a DWORD value at \\HKCU\Software\Microsoft\Terminal Server Client\AuthenticationLevelOverride&lt;/p&gt;&lt;p&gt;I googled on AuthenticationLevelOverride and couldn&amp;#39;t find very much information.&amp;nbsp; But one article had a fair bit of information: &lt;a href="http://support.microsoft.com/kb/895433"&gt;http://support.microsoft.com/kb/895433&lt;/a&gt;.&amp;nbsp; Here are the 3 possible values, at least in Windows Server 2003:&lt;/p&gt;&lt;p&gt;Set the authentication level value to one of the following values: &lt;table border="0" class="list ul"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="bullet"&gt;&amp;bull;&lt;/td&gt;&lt;td class="text"&gt;&lt;strong class="uiterm"&gt;0&lt;/strong&gt; This value corresponds to &amp;quot;No authentication.&amp;quot;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;&amp;bull;&lt;/td&gt;&lt;td class="text"&gt;&lt;strong class="uiterm"&gt;1&lt;/strong&gt; This value corresponds to &amp;quot;Require authentication.&amp;quot;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;&amp;bull;&lt;/td&gt;&lt;td class="text"&gt;&lt;strong class="uiterm"&gt;2&lt;/strong&gt; This value corresponds to &amp;quot;Attempt authentication.&amp;quot;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;I experimented and found that 2 is the default now.&amp;nbsp; I tested the 3 modes and found that:&lt;/p&gt;&lt;p&gt;0 -&amp;gt; Doesn&amp;#39;t prompt.&amp;nbsp; Yah!&lt;br /&gt;1 -&amp;gt; Gives a similar message but doesn&amp;#39;t allow me to continue.&amp;nbsp; This is the strictest.&lt;br /&gt;2 -&amp;gt; Gives the message but allows me to accept and continue.&lt;/p&gt;&lt;p&gt;In my case, I don&amp;#39;t even want the prompt so I set AuthenticationLevelOverride to 0 and I&amp;#39;m able to log into my Remote Desktop sessions without that extra prompt.&lt;/p&gt;&lt;p&gt;Warning: this is a decrease in security so should only be changed if you are aware of the what and why of this change.&amp;nbsp;&lt;/p&gt;&lt;p&gt;In summary, if you want to remove the Authentication check on Windows Vista that prompts you every time you connect to a pre-Vista machine, add a DWORD registry entry called AuthenticationLevelOverride in the \\HKLM\Software\Microsoft\Terminal Server Client\ key and ensure that its value is set to 0.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=901053" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/owscott/archive/tags/Remote+Desktop/default.aspx">Remote Desktop</category><category domain="http://weblogs.asp.net/owscott/archive/tags/Windows+Vista/default.aspx">Windows Vista</category></item><item><title>Is 64-bit computing always better?</title><link>http://weblogs.asp.net/owscott/archive/2006/11/07/Is-64_2D00_bit-computing-always-better_3F00_.aspx</link><pubDate>Wed, 08 Nov 2006 04:01:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:878063</guid><dc:creator>OWScott</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/rsscomments.aspx?PostID=878063</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/commentapi.aspx?PostID=878063</wfw:comment><comments>http://weblogs.asp.net/owscott/archive/2006/11/07/Is-64_2D00_bit-computing-always-better_3F00_.aspx#comments</comments><description>&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;In the early days of 64-bit, drivers were hard to find or unstable, programs wouldn&amp;rsquo;t run and help was scarce.&amp;nbsp; I started using Windows XP 64-bit about a year ago, so I&amp;rsquo;ve battled through many of the issues with working with this &amp;lsquo;newer&amp;rsquo; technology.&amp;nbsp; At ORCS Web, we support Windows Server 2003 64-bit on different types of applications, from SQL Server to IIS to Microsoft Virtual Server.&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;So, is there a rule of thumb with 64-bit?&amp;nbsp; Should everyone use it whenever possible?&amp;nbsp; Or are there reasons to stick with 32-bit?&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;My original thought was that [64-bit = newer therefore 64-bit = better].&amp;nbsp; I&amp;rsquo;ve come to find out that isn&amp;rsquo;t always the case, as I&amp;rsquo;ll explain below.&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;First, my experience on a desktop. &amp;nbsp;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;I got a new computer built and supported by Dell as a 64-bit server and with Windows XP 64-bit pre-installed.&amp;nbsp; Drivers weren&amp;rsquo;t a problem for me since Dell took care of that already.&amp;nbsp; But I still ran into a number of issues, including:&lt;/font&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div class="MsoPlainText" style="margin: 0in 0in 0pt"&gt;&lt;font face="Verdana"&gt;Many applications didn&amp;rsquo;t work in 64-bit.&amp;nbsp; Many of my favorite utilities and tools wouldn&amp;rsquo;t work.&amp;nbsp; If I were to guess at a number, 80% of my applications worked like normal, but about 20% didn&amp;rsquo;t.&amp;nbsp; That 20% was enough to be inconvenient.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="MsoPlainText" style="margin: 0in 0in 0pt"&gt;&lt;font face="Verdana"&gt;My memory (RAM) usage was higher.&amp;nbsp; For lots of smaller applications, there is a lot of waste.&amp;nbsp; The full 64-bit address space isn&amp;rsquo;t always utilized, leaving lots of underutilized memory.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="MsoPlainText" style="margin: 0in 0in 0pt"&gt;&lt;font face="Verdana"&gt;Help was hard to find.&amp;nbsp; Even simple things like finding my Mail icon in the control panel took a long time to figure out: http://weblogs.asp.net/owscott/archive/2006/01/19/435921.aspx&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;So, I have come to conclude that in many cases 64-bit isn&amp;rsquo;t necessary for a desktop computer.&amp;nbsp; My desktop has 3GB of RAM now, but I don&amp;rsquo;t see any advantages of using 64-bit unless I&amp;rsquo;m a developer that needs to test 64-bit applications or have a need to use very large amounts of memory.&amp;nbsp; My general recommendation is to only use 64-bit for a desktop computer if you have a specific reason to do so.&amp;nbsp; &lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Next, my experience on a server&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;How about on the server end?&lt;span&gt;&amp;nbsp; &lt;/span&gt;I made the same incorrect assumption at first, determining that most new servers would eventually use 64-bit as a standard.&lt;span&gt;&amp;nbsp; &lt;/span&gt;But experience and recent load testing has convinced me otherwise.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;Recently we had a high-traffic ASP.NET website that we deployed on a 64-bit server with Windows Server 2003 x64 Standard Edition.&lt;span&gt;&amp;nbsp; &lt;/span&gt;It was part of a webfarm so we were able to compare it directly against other 32-bit servers with similar hardware.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Performance was noticeably less than on the 32-bit servers which surprised me at first.&lt;span&gt;&amp;nbsp; &lt;/span&gt;I spent a consideration amount of time reproducing the issue and isolating it to just 32-bit.&lt;span&gt;&amp;nbsp; &lt;/span&gt;In fact, I tested ASP.NET and IIS6 running in 32-bit mode as well to test all three situations.&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;I did some load testing using Microsoft&amp;rsquo;s Web Application Stress Tool (WAST).&lt;span&gt;&amp;nbsp; &lt;/span&gt;I used 2 identical servers (ordered from Dell at the same time with the same specs) and built one as 32-bit and one as 64-bit.&lt;span&gt;&amp;nbsp; &lt;/span&gt;They are solid machines, Dual 3.0Ghz Dual Core CPU with 4GB of RAM and 15,000RPM SCSI hard drives.&lt;span&gt;&amp;nbsp; &lt;/span&gt;I set up 7 load testing servers using a Gbps network core to test.&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Test Results &amp;ndash; IIS only&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;Hitting IIS directly for a static 2kb page, both servers were able to serve up over 14,000 Pages/sec with only 70% CPU.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The 7 load testing servers weren&amp;rsquo;t able to max out the web servers.&lt;span&gt;&amp;nbsp; &lt;/span&gt;So IIS doesn&amp;rsquo;t have any problem handling huge amounts of traffic!&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Test Results &amp;ndash; Simple ASP.NET&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;I then tested a simple ASP.NET page that ran &amp;lt;%= now %&amp;gt; as well as 2kb of plain text.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The 32-bit server was able to serve up a maximum of 3,400 Pages/sec.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The CPUs were the bottleneck.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The 64-bit server was able to serve up a maximum of 2,100 Pages/sec.&amp;nbsp; So the 32-bit server easily outperformed the 64-bit server.&lt;span&gt;&amp;nbsp; (Note: &lt;/span&gt;On this particular test, on the 64-bit server, ASP.NET and IIS performed the same whether they were in 64-bit mode or 32-bit mode.)&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Test Results &amp;ndash; ASP.NET loop&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;The next test was a While loop with 1,000,000 iterations.&lt;span&gt;&amp;nbsp; &lt;/span&gt;In each iteration I outputted Response.Write(&amp;ldquo;&amp;rdquo;) just to give it something to do.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Both servers were able to serve up 68 Pages/sec.&lt;span&gt;&amp;nbsp; &lt;/span&gt;So, in this particular test, the 64-bit server was able to catch up in performance.&lt;span&gt;&amp;nbsp; &lt;/span&gt;It would appear that a while loop performs identical in both situations.&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Test Result &amp;ndash; Others&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;I ran some other tests, some with interesting unexpected data, but that is a whole different topic.&lt;span&gt;&amp;nbsp; &lt;/span&gt;These tests only start to dive into the differences between 32-bit and 64-bit computing, but they show that there is a substantial difference between them, and for low memory applications, a 32-bit Operating System is often faster.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;From the other tests I performed, I concluded that there is about a 10 &amp;ndash; 15% performance penalty running a 64-bit OS with low amounts of memory.&lt;span&gt;&amp;nbsp; &lt;/span&gt;This varies depending on what operation is being performed.&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;So, for the server environment also, I concluded that 64-bit isn&amp;rsquo;t always better either.&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;Now, what about the stories of huge performance gains on 64-bit?&lt;span&gt;&amp;nbsp; &lt;/span&gt;Believe them!&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;span style="font-family: Wingdings"&gt;&lt;span&gt;J&lt;/span&gt;&lt;/span&gt;&lt;font face="Verdana"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;For high memory situations and products well tuned for 64-bit like SQL Server 2005, there are tremendous performance gains to be had.&lt;span&gt;&amp;nbsp; &lt;/span&gt;I&amp;rsquo;ve seen some pretty impressive tests show substantial performance gains on 64-bit.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The 64-bit SQL Server and 64-bit Virtual Server servers that we have set up at ORCS Web (&lt;a href="http://www.orcsweb.com/"&gt;www.orcsweb.com&lt;/a&gt;) are handling huge loads with ease.&lt;span&gt;&amp;nbsp; &lt;/span&gt;While I haven&amp;rsquo;t purposefully compared SQL Server performance like I have ASP.NET, I have every reason to believe that the reports are true that under high memory demands SQL Server on 64-bit greatly outperforms&amp;nbsp;32-bit.&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Memory limits blown away&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;If you have high memory requirements, 64-bit may not only be better, but it may be the only option.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The 64-bit memory space blows away many of the memory limits that used to exist.&lt;span&gt;&amp;nbsp; &lt;/span&gt;We&amp;rsquo;re talking Terabytes instead of&amp;nbsp;Gigabytes!&lt;/font&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;I&amp;rsquo;ve come to conclude that 64-bit isn&amp;rsquo;t always better.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Don&amp;rsquo;t just use 64-bit to use the latest technology.&lt;span&gt;&amp;nbsp; &lt;/span&gt;For low memory situations, 64-bit may actually perform worse, have driver compatibility issues and be harder to support.&lt;span&gt;&amp;nbsp; &lt;/span&gt;But, for high memory situations, chances are good that those issues disappear and the benefits that the larger memory namespace offers will far outweigh the issues.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;There is a place for each, but there is still a lot of life left for 32-bit&amp;nbsp;computing.&lt;/font&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoPlainText"&gt;&lt;font face="Verdana"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=878063" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/owscott/archive/tags/Windows+64-bit/default.aspx">Windows 64-bit</category></item><item><title>Podcast interview on ASP.NET Podcast Show</title><link>http://weblogs.asp.net/owscott/archive/2006/08/23/Podcast-interview-on-ASP.NET-Podcast-Show.aspx</link><pubDate>Wed, 23 Aug 2006 16:44:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:478960</guid><dc:creator>OWScott</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/rsscomments.aspx?PostID=478960</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/owscott/commentapi.aspx?PostID=478960</wfw:comment><comments>http://weblogs.asp.net/owscott/archive/2006/08/23/Podcast-interview-on-ASP.NET-Podcast-Show.aspx#comments</comments><description>&lt;p&gt;When Wally McClure came to Charlotte to give a talk on Atlas to the Charlotte User Group, I&amp;nbsp;had an interview with him which is now live on Show #66 of the ASP.NET Podcast Show.&amp;nbsp;&amp;nbsp;I didn&amp;#39;t dive in too deep, but we discussed Webfarm hosting and some of the topics I covered in my TechEd 2006 talk in Boston, and some of the new upcoming features in IIS 7.0.&lt;/p&gt;&lt;p&gt;Check it out:&lt;/p&gt;&lt;p&gt;&lt;a href="http://aspnetpodcast.com/CS11/blogs/asp.net_podcast/archive/2006/08/17/504.aspx"&gt;http://aspnetpodcast.com/CS11/blogs/asp.net_podcast/archive/2006/08/17/504.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=478960" width="1" height="1"&gt;</description></item></channel></rss>