VSS and CruiseControl.NET

Posted on 2009-02-10
Last Modified: 2013-12-17
I have a problem with accessing VSS from CruiseControl.NET. When I run cruise as a console it works perfectly but when I start CC as a windows service I get errors in the log that no source safe database was found.

Have tried running the CC service as my own account and as a separate cruise account, none of which seems to work.

Any ideas?

The error I get is "ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: No VSS database (srcsafe.ini) found.  Set the SSDIR environment variable to the path of srcsafe.ini for your VSS database."  - which I have tried.

Full exception



ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: No VSS database (srcsafe.ini) found.  Set the SSDIR environment variable to the path of srcsafe.ini for your VSS database.

. Process command: C:\Program Files\Microsoft Visual SourceSafe\ss.exe history "$/External Dependencies/XUnit" -R -Vd10/02/2009;9:54~09/02/2009;17:03 -Y, -I-Y "-O@C:\Documents and Settings\myacct\Local Settings\Temp\tmp47.tmp"

   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo)

   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vss.GetModifications(IIntegrationResult from, IIntegrationResult to, String tempOutputFileName)

   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vss.GetModifications(IIntegrationResult from, IIntegrationResult to)

   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.MultiSourceControl.GetModifications(IIntegrationResult from, IIntegrationResult to)

   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod.GetModifications(ISourceControl sourceControl, IIntegrationResult lastBuild, IIntegrationResult thisBuild)

   at ThoughtWorks.CruiseControl.Core.IntegrationRunner.GetModifications(IIntegrationResult from, IIntegrationResult to)

   at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest request)

   at ThoughtWorks.CruiseControl.Core.Project.Integrate(IntegrationRequest request)

   at ThoughtWorks.CruiseControl.Core.ProjectIntegrator.Integrate()

   at ThoughtWorks.CruiseControl.Core.ProjectIntegrator.Run()


Open in new window

Question by:craigdev
    LVL 7

    Expert Comment

    I've recently been bitten by the 'Windows Services cannot access mapped drives' problem.  Is your VSS repository access via a mapped drive?

    Is the CC Service running as LocalService, or via credentials that allow access to the repository?
    LVL 1

    Accepted Solution

    I had this same issue and setting the CC service to run as a user who had rights to the VSS database path did the trick.  By default, the CC service runs under the Local System account.  To change this...

    1. Right click My Computer.
    2. Click Manage.
    3. Expand Services and Applications
    4. Click on Services.
    5. Find CruiseControl .NET Server in the right pane.
    6. Right click on it and go to Properties.
    7. Go to the Log On tab.
    8. Select "This account", and specify a user account that HAS ACCESS to the VSS file path where the database resides, to which CC is trying to connect.
    9. Restart the CruisControl .NET Server service.
    10. You should be good to go.

    Also, be sure that the credentials and VSS database information in your ccnet.config file are accurate.

    		<sourcecontrol type="vss" autoGetSource="true">
    			<timeout units="minutes">40</timeout>

    Open in new window


    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    How your wiki can always stay up-to-date

    Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
    - Increase transparency
    - Onboard new hires faster
    - Access from mobile/offline

    A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
    This article describes how to use the timestamp of existing data in a database to allow Tableau to calculate the prior work day instead of relying on case statements or if statements to calculate the days of the week.
    Viewers will learn how to use the Hootsuite Dashboard.
    Video by: Kyle
    After watching the Introduction to GIMP and additional tools to use in GIMP we are shown how to utilize multiple tools to create a 3D effect image.

    761 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    11 Experts available now in Live!

    Get 1:1 Help Now