What happened SourceSafe web service access in Beta 2?

A collegue of mine has just setup a SourceSafe 2005 database and configured it for internet web service access. I have Team Suite installed including SourceSafe 2005, but I am unable to find an option anywhere which would allow me to connect to it. I can connect over a local LAN or over the net via file sharing, but I can't find the web service protocol. I was informed this feature was in Beta 1.

Anyone know what happened to it I thought Beta 2 was feature complete since the Go Live license is available....



Answer this question

What happened SourceSafe web service access in Beta 2?

  • Reutener

    On Gary's system we specify the host name of my SourceSafe server. We specify the correct UNC name. When we click Next we see the window appear: "Connecting to Web Service...". Then a Windows authentication dialog appears with the name "Gary" and I believe his SourceSafe password. It doesn't say anywhere that I need to create a local user matching his SourceSafe user in order for him to be able to access the database. I'll try it and see what I get.
  • nicomp

    The VssWebUpload and VssWebDownload virtual directories are not being created. Is this still supposed to happen in Beta 2 I'm running Windows Server 2003 by the way.
  • Zakiess

    Yes, I've navigated to the 50215 build folder and executed aspnet_regiis there.

    The Web_Service line in srcsafe.ini was already there (as a result of it creating the virtual directory successfully). However the other two settings weren't.

    There was no appSettings section in C:\Program Files\Microsoft Visual SourceSafe\VSSWebService\web.config.

    We're testing it now.

  • foru

    Some additional information on this problem... when Gary tried to access my SourceSafe database via the Web service (in the dialog that prompts for URL and share in VS 2005), when he attempts to connect he actually gets a Windows authentication dialog box asking him for credentials. His SourceSafe user is Gary, the Windows user he's logged in as is Gary and the credentials box is filled in with "nate.public.com\Gary". Do I have to create a local user manually that matches his VSS user and assign rights to the SourceSafe share and folders

    However, if I specify Administrator as the username (this is the account being impersonated by the Web service) in that credentials window I instead receive an error stating that the file share could not be read.

  • ErnieBilling

     Nate wrote:
    I've already tried that before. And just to be sure I tried it again and it still doesn't create the two virtual directories. I don't get any errors from the Admin tool though. Where is this script that VSS is executing I want to take a look at it and see if it's even creating these two virtual folders.

    Where should the two virtual directories point, and what should the virtual directory names be Maybe I can just create them manually.

    By the way, I'm the guy Gary D is working with to try and solve these problems. Smile


    Hello,

    Just to recap:
    1. You ran regiis from the v2.0.50215 directory (e.g. Beta 2). No errors were reported
    2. After that, you ran SourceSafe Admin, brought up Server|Configure and checked both config checkboxes. No errors were reported.
    As a result, you are seeing the SourceSafe subweb under the default web, but no virtual directories

    That is quite strange... I would try the following
    a. Delete the SourceSafe subweb and go through those steps again.  
    b. If when you launch Server|Configure on step #2 the checkbox for the database is checked, you need to first un check it, hit OK and close the dialog, and then open it angain and check the checkboxes. 


    Anyway, you can also create the vdirs manually (assuming the SourceSafe subweb is created). Here is the procedure:

    1. Go to the file system directory where your database is located (e.g. c:\myvss\)
    2. Create a sibling folder to the data directory, call it VssWebUpload
    3. Create a second sibling folder to the data directory, call it VssWebDownload
    4. Open the srcsafe.ini of your database, and add the following three lines:
       DownloadVDir = VssDownload_db1
       UploadVDir = VssUpload_db1
       Web_Service =
    http://yourserver.com/SourceSafe/VssService.asmx

          Make sure you enter the same URL as the remote users will use

    5. Go to IIS manager, and navigate to the SourceSafe web
    6. Add a virtual directory called VssUpload_db1, that points to the VssWebUpload folder created on step #2. Allow write access to this Upload virtual directory
    7. Add a virtual directory called VssDownload_db1, that points to the VssWebDownload folder created on step #3. Allow read access to this Download virtual directory
    8. Open the Web.config file under the SourceSafe web, and add the following line directly before the </configuration> tag:
       <appSettings><add key=
    \\yourserver\yourdb" value=""/></appSettings>
          Make sure you enter the same UNC path as the remote users will use


    Now Gary just needs to go through the steps I outlined under "On the client" section on my previous post and it should work.

    Let me know how it goes...


  • lasouris

    I created a local user on my server matching his SourceSafe user and password, and granted that user full access to both the SourceSafe share I created and the folders and files themselves. After clicking Next I just get the error "The specified share path cannot be accessed by the SourceSafe Web service."

    Perhaps we could set up a remote assistance session tonight and you can actually watch me take these steps

    My MSN Messenger email is visualcsharpcoder at-no-spam hotmail dot cawm.


  • Matt Johnson

     Nate wrote:
    The VssWebUpload and VssWebDownload virtual directories are not being created. Is this still supposed to happen in Beta 2 I'm running Windows Server 2003 by the way.


    Hi Nate,

    Try re-registering asp 2.0. You can see the details on how to do that on Roman's reply at
    http://forums.microsoft.com/msdn/ShowPost.aspx PostID=1130

    Once you compelted that, re-enable remote access using SourceSafe Administrator. The virtual directories should be available at that point.

  • ICW

    Good news to report. I didn't mention it before but I actually had the Visual SourceSafe Beta 2 installed that comes as a separate ISO from MSDN Subscriptions. I uninstalled that and installed the one that comes with VS 2005 Beta 2. I enabled my database for Internet access and it created all the folders correctly. However when Gary tries to connect we get a prompt for Windows credentials. If I change the credentials to the Administrator on my VSS server and click OK, we still get the error message I mentioned before. The name of the share is \\nate\SourceSafe$ (using the $ was recommended for security reasons). This really looks like just a basic permissions issue here. What permissions do the Web service need in specific The Web service's web.config has impersonation turned on and it's impersonating the local Administrator account, which has access to the \\nate\SourceSafe$ share. I don't understand why Gary wouldn't be granted access, and I also don't understand why the Windows authentication prompt is appearing.
  • Andy G.

    I have the exact same problem as Nate. What permissions does the webservice need to access the shared folder

  • misha_sql

    Yeah I've done exactly what you listed in your "recap" steps, many times over. It still only creates one virtual directory. I'm trying the other steps now.
  • Smat

    Hi Gary,

    You also opened a product feedback issue, right
    I replied there, but will also reply here, so the information is available for the commuity.

    Apologies if the documentation is not easy to find. Let me walk you through the process of setting it up, I will also include a couple of pointers to the online documentation.

    On the server

    As you observed, we do require that for a SourceSafe database to be exposed through the Web Service, it needs to be accessible via an UNC path (e.g. shared). This adds a layer of security beyond IIS and the file system; and is based in our assumption that a database has been locked down using the SourceSafe Security guidelines (http://msdn2.microsoft.com/library/ms181061(en-us,vs.80).aspx)

    When you have created the share and restricted permissions as the guidelines dictate, you need to open SourceSafe Administrator on the server where the database resides, do a File|Open database and access the database using the UNC path (In the wizard, select "Add Existing..." and type the \\yourserver\database path).

    Now go through the steps on http://msdn2.microsoft.com/library/ms181057(en-us,vs.80).aspx to configure the Web Service.

    Once you have gone through those steps, you can verify that the web service is indeed installed by doing the following:
    1. Open IIS manager (right click on "My Computer" icon,  and select manage)
    2. Navigate to the default website, and you should see a new sub-Web called SourceSafe
    3. Under that subweb you should see two virtual directories named like: VssWebUpload_XXX & VssWebDownload_XXX
    4. Point your browser from the client machine to the http(s)://[yourserver]/SourceSafe/VssService.asmx URL, you should see an asp error similar to:
     "Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine."
     That is expected, since for security reasons we don't expose the web service details.

    On the client

    Go to your client computer and bring up Visual Studio. Make sure you select the SourceSafe (Internet) plugin.

    1. Bring up the File|Open Project dialog.
    2. You will notice a new icon on the left shortcut bar for SourceSafe Internet. Select it
    3. Select the "Add SourceSafe Database" icon
    4. In the Wizard, choose "Connect Using the Internet"
    5. Enter both the URL (http://yourserver/) and the UNC  (\\yourserver\database) for the database you want to connect to
    6. Give it a name, and you are set.
    7. Now, if you didn't configure SSL on your IIS server, you should:
       7a. Go to Tools|Options|Source Control|Plug-In Settings
       7b. Click the "Advanced" button
       7c. Uncheck "use SSL"
     
    From this point on you should be able to perform source control operations against that database, as if you were accessing it through the local network.

    It looks a bit long, but shouldn't take you more than 10 minutes to be up and running. Let me know if you run into any issues, I'll be happy to help troubleshoot

    Regards,

    Alfredo Mendez
    Program Manager
    Visual SourceSafe and
    Visual Studio Source Control



  • Soloviev.I.

     Nate wrote:
    Some additional information on this problem... when Gary tried to access my SourceSafe database via the Web service (in the dialog that prompts for URL and share in VS 2005), when he attempts to connect he actually gets a Windows authentication dialog box asking him for credentials. His SourceSafe user is Gary, the Windows user he's logged in as is Gary and the credentials box is filled in with "nate.public.com\Gary". Do I have to create a local user manually that matches his VSS user and assign rights to the SourceSafe share and folders


    Yes he needs to be authenticated with IIS to access the web service.
    If he already has a domain user "nate.public.com\Gary", that matches the SourceSafe user name, you do not need to create a local machine user.

    You simply need to make sure that his domain user has the required access rights for the file system and the windows share (see http://msdn2.microsoft.com/library/ms181061(en-us,vs.80).aspx for details on which rights to assign).

    And also you need to make sure that your SourceSafe database supports "Use network name for automatic user log in" in the SourceSafe admin Tools|Options|General page.


    However, if I specify Administrator as the username (this is the account being impersonated by the Web service) in that credentials window I instead receive an error stating that the file share could not be read.


    This is expected if you are not using SSL/https 
    We require that the login name you are using to authenticate to IIS has to exist in the SourceSafe database. If the data channel is not encrypted we dont want to be passing SourceSafe credential information to the web service.


  • entrance80

    I've already tried that before. And just to be sure I tried it again and it still doesn't create the two virtual directories. I don't get any errors from the Admin tool though. Where is this script that VSS is executing I want to take a look at it and see if it's even creating these two virtual folders.

    Where should the two virtual directories point, and what should the virtual directory names be Maybe I can just create them manually.

    By the way, I'm the guy Gary D is working with to try and solve these problems. Smile

  • CSharpGuy

    Now i managed to get it to work.  I had enabled the internet access while the project was opened thru a regular filepath (Not a unc) and the key in webconfig was c:\blabla instead of \\blabla.

    I also noticed while exprimented with this that old keys in the web.config was not cleaned up and stuff like that. It still feels very "Beta" wich it ofcourse is ..

    Thanx anyway for the great post, would have been impossible without it Smile

    /Ola

  • What happened SourceSafe web service access in Beta 2?