IIS (Ver 6 & 7) Support for Mount Points
Introduction
A recent question came across our "desk" today that I thought was an interesting point that many of you might be interested in. The question -
"We are running out of disk space on our content drive and want to rectify the problem. Does IIS support mount points for content paths?"
I sat, puzzled, looking at my screen and just thought to myself...Well, I can't quite honestly say I have ever been asked that question nor actually even had it personally cross my mind. Lickedy split I ran off to my favorite developers office...Anil, hmm...
Does IIS 6 support the use of Mount Points?
The first thing that popped to mind about this situation is that mount points "root" directories are hidden by the operating system. For example:
Webroot: C:\inetpub\wwwroot --> Disk 0, Volume 0
Mounted Volume: C:\inetpub\wwwroot\WebContent --> Disk 1, Volume 0
In this situation, you have the ability to "expand" the storage by adding disk (Disk 1) and mounting it as a directory within another NTFS volume. In this case, Disk 0 and Volume 0.
At this point, you have the ability treat this new "directory" as an expansion of current storage solution and it expands to the size of the drive you have added.
As for IIS 6.0's support of this solution, the answer is yes. Well, that is a yes with a "kinda" attached to it. The basic premise shared with me by Anil is that IIS 6.0 will not serve content from a hidden directory (I knew this! :) and that by default the "root" of a newly mounted directory is hidden. That said, in our example above the \WebContent directory itself is hidden and cannot be pointed to. However, any file or directory below IIS 6.0 can successfully access.
To try and illustrate this a bit clearer, lets imagine the above example looks like the following:
1) Client A connects to IIS 6.0 server and requests http://hostname/myvdir
2) IIS resolves myvdir to c:/inetpub/wwwroot/webcontent through normal means
3) In this case, the user didn't request a physical file or a directory below the root mount directory and IIS sees an attribute on the directory for hidden and fails the request.
In the above example, however, the same user could ask for the same URL but with an explicite call to a file such as default.htm and IIS 6.0 would serve that request.
Strange: Who's fault was that?
Short: Ours. The nice thing is that we have fixed this behavior in IIS7 and we will now not have this limitation and we "just work" out of the box. Thus, keep on understanding it on IIS 6.0 and understand its limitations and just know that we will support you well into the future with IIS7.
As of this writing, I don't know of any plans to address this in any service pack for IIS 6.0.
Summary
This was something I just didn't know much about and it was nice to see these type of questions come through. I enjoy when customers use their verse knowlege of options to solve eventual complex problems and ask good, educated questions such as these. I hope it works out well for this customer, and any others who take the time to "give 'er a shot!"