Hosting multiple instances of an ASP.Net web app on a single server can be useful. While running multiple instances of an *.exe is trivial, multiple instances of a web app are not because they're both served through IIS. For example, the client may want a static copy of the app for internal demos, but for various reasons unique to that client, they can't use the staging instance for their demo. Or the client may want separate apps for two totally separate vendors. They can then configure (not re-compile) the apps appropriately.
.Net can do this. Assuming that you're deploying the app via an MSI, you primarily need to just change the MSI's version. You'll then also need to modify the apps config, such as making it point to it's own database.
However, be aware of two limitations:
- You'll need to change the version of the MSI file, which requires checking it out from source control and recompiling.
- You can't install an earlier version if a later already exists.
So, you could compile two instances, label them version 1.0 and 1.1, and then run each MSI (1.0 and then 1.1) and configure them as needed.