Skip to main content

VSS 2005 Web Interface

Step 1: Create your database. Make sure you change the Admin password as it starts out blank.

Step 2: Share the folder. For the share name I added a Vss so I'd know why it was shared.

Step 3: Set your Security in Windows. Add each user and give them modify on the folder. Also, you may have a problem with inherited rights from the parent folder. That seemed to manifest itself as "Access to file...\data\rights.dat denied." Click on the Advanced button and tell it to update all child folders. I just got in the habit of doing this for all users.

One of the things that kept biting me was forgetting to set the Permissions on the share. Click on the Permissions button and add all of the desired users. Make sure you remove Everyone.

Win2003Server Permissions on Sharing tab 

Step 4: Check out Alin Constantin's page. He's got about 90% of the work done.


  • If you're going to use a subdomain, have it created and ready to go.
  • Wildcard certificates will work.
  • Make sure that your SourceSafe virtual directory is *not* in a folder that has a web.config.
  • You won't be able to test from the server once you set Windows Authentication because of IIS6's loopback protection.
  • I allowed the error messages and WSDL info to be shown so that I could tell when I had a problem.
  • You may need to copy the SourceSafe folder that contains the Asmx file to your desired folder. Don't forget to create it as an Application in IIS Manager.
  • You will also probably need to create Virtual Directories for VssUpload_db? and VssDownload_db?. You can fill in the question mark by looking at the corresponding folder in the Vss Database folder. Upload only needs read and write, while Download is only read.

I hope this saves someone else the time it took me to figure this out.


Popular posts from this blog

Migrating Legacy Apps to the New SimpleMembership Provider

Asp.Net MVC4 uses the new SimpleMembership provider, changes the table structure and adds a new hashing algorithm. The reasons for the changes can be found in this article by Jon Galloway. This article shows how to migrate your existing apps to the new provider.I’m assuming that you stored your passwords in the unrecoverable SHA-1 format. If you didn’t, then you’ll have to change a couple of things. All of my apps are done this way so… I’m also assuming that you have created the basic skeleton of the new app and ran it once so the correct tables will be created.First, we’ll look at the new tables. Previously, we had all of those aspnet_xxxxxx tables. Here’s the new ones.UserProfileContains all of the elements relevant to the user. This is a combination of the aspnet_Users table and the aspnet_Profiles table.webpages_MembershipStores the password info when not using OAuth, Live, Facebook, etc. This table is somewhat of a match to the aspnet_Membership table.webpages_OAuthMembershipStor…

JavaScript function to automatically add slashes to date

In converting an old Windows app to a browser app, the user wanted to be able to enter dates without the slashes. Here's a simple jscript: 1:// Function to convert short date string (MMddyy) 2:// or (MMddyyyy) to a date string (mm/dd/yyyy). 3:// txtBox is the actual textbox control 4:// with the value to be processed. 5:function FixShortDate(txtBox) { 6:if (txtBox == null) { 7:return'' } 8: 9:var re = new RegExp(/(\d{6})(\d{2})?/); 10: 11:if (re.test(txtBox.value)) 12: { 13:if (txtBox.value.length == 8) { 14: txtBox.value = txtBox.value.substring(0, 2) + '/' + txtBox.value.substring(2, 4) + '/' + txtBox.value.substring(4, 8) 15: } 16: 17:if (txtBox.value.length == 6) { 18:if (txtBox.value.substring(4, 6) < 20)

Get Asp.Net Profile properties from Sql

Ever wanted to include the profile information from an Asp.Net profile in a query? It’s not that hard once you understand the structure. I’ve written a little function that does all the work. Note: I’m using Sql Server as my repository.

First we need to understand how the profile data is stored. Looking at the aspnet_Profile table, we can see that it stores the information in two columns: PropertyNames and PropertyValuesString.

Looking at PropertyNames we can see that it has a basic structure of Property Name, Data Type, Starting Position and Length. For example, in the string “FirstName:S:0:4:Phone:S:4:10:LastName:S:14:5:” we can see that FirstName is of type string, starts at position 0 and has a length of 4. Notice the zero base for the starting position, we need to correct for that in our function. This means in the PropertyValuesString “John2175551212Smith”, we would start with the first position and proceed 4 characters to get the name.

You might be thinking …