D.9 Web Projects

A web project can be placed in a source control database just as any other project can. If you want to use a web project in this way, see the discussion in Chapter 1 about setting up a solution with a web project for adding directly to a source control database.

Another way to use source control with a web project is to allow the FrontPage Server Extensions (FPSE) to interact with the source control database for you. There are two scenarios in which you would choose to allow FPSE to manage source control for you. The first is if you have multiple members of a development team working on the same copy of a web project and you are already using FPSE to access the shared project. If you require source control on that project, letting FPSE manage VSS will make development significantly easier than trying to coordinate check-ins and check-outs between multiple developer machines. The second scenario is if you are working on a web project in which there is a firewall between you and the web server. FPSE uses only HTTP over port 80 (or the port of the web server you are connecting to), so firewalls do not present a problem. In this situation, using VSS directly would fail, since it uses the SMB protocol, which does not usually work through firewalls.

You will need to create two accounts in order to make this work. First, you need to create an account in the default VSS database (FPSE will use only the default database on a machine) with the same name as your account name and another account for the anonymous web user (i.e., IUSR_<Machinename>). FPSE will use your account to log into the database when you change the FPSE settings and the IUSR account when FPSE is impersonating that user.

Once you have created these accounts, you can go to the Server Extensions tab on the IIS Virtual Directory property page. On that page, for Version Control, select Use External. When you next retrieve the project that represents that virtual directory from the web server, the Solution Explorer will now show that the project is under source control (i.e., the normal icons will appear). The operations are the same as when you are dealing with a local project, but it is FPSE, rather than the IDE, that calls into VSS. This can be helpful when you want to share a common project directly from a single web server.