Difference between application and virtual directory

I am asp.net developer , I am always confused between application and virtual directory in IIS.It seems that in iis 6.0 ,you can only create virtual directory.


Those two are easy to get confused and people often use the terms interchangeably.

A virtual directory is just a pointer to a different location on disk. It points to a fixed path on disk that is different that its parent folder.

An application is a boundary between different folders. ASP.NET uses it to create a new AppDomain root (or application root). An application root uses a different global.asax, bin folder and the other app_[folders.].

In IIS6 and IIS7 if you create a virtual directory, it is not also an application by default. ASP.NET will put it in the same AppDomain as its parent folder.

In IIS6 you can convert a virtual directory or a regular folder into an application by right-clicking -> properties and Create.

In IIS7 the options are named different but it's the same in the background. Creating a virtual directory allows you to create a vdir that is still part of its parent's AppDomain i.e. not an application).

The "Add Application" option actually creates a virtual directory AND then marks it as an application. (you'll notice that it allows you to specify a path).

You can also right-click on an existing folder (or vdir) and Convert to Application. That's a way to create the application boundary on a existing regular or virtual folder.


You can also check.. Did you know: Difference between Virtual Directory & Application in IIS 7 / 7.5

Edited: To quote the site, as the link is dead;

In IIS 7 / 7.5, you have an option to create a Virtual Directory and Applications.

What is a Virtual Directory?

Virtual Directory is a directory that is mapped to a local physical directory or a directory on a remote server. A Virtual Directory will have it's code executed in the same worker process as the parent process. The application pool of the Web Site and Virtual Directory is the same.

Image05

What is an Application?

An Application is identical to the Virtual Directory except that you have an option to run an Application in a different application pool.

Image06

NOTE: this is how the above screenshots looks like in applicationhost.config