New Reply

Good news! We have migrated all the Q&A on this site to, and are currently monitoring questions there!

Here are some important links:

All posts here are permanently locked (and will be redirected soon), and if you have any issues with the new site, please submit a support ticket, use the contact form, or visit our Slack Workspace.

We are trying to do manual installation of BuildMaster but the service (INEDOBMSVC) will not start when pointing to a manually installed database. We get the error "The BuildMaster Service (INEDOBMSVC) service on Local Computer started and then stoped. Some services stop...". The only error written to the event log is "Service cannot be started. The handle is invalid".

The very same service WILL start when pointing to an automatically installed database (by changing the connection string).

To manually install the database we have:

  1. Created a blank database in SQL Server 2008 SP1
    1a) Created the DB with SQL_Latin1_General_CP1_CI_AS collation
    1b) Created the DB using the same account under which the BM service runs under so that it is dbowner and has a default schema of dbo
  2. Run bmdupdate.exe
    2a) Selected option 3 to update the DB
    2b) Entered the connection string
    2c) Entered "yes"
    2d) Confirmed there were no errors
  3. Run OBJECTS-v3.5.10.6.sql against the database using SQL Server Management Studio in SQLCMD mode
    3a) Confirmed there were no errors

Is there anything else that has to be done for a correct database install?

Hi Tim,

The "Service cannot be started. The handle is invalid." error is coming from the service host -- it can be caused by all sorts of differet things to any service... including keeping the service control manager window open.

Can you try running the service interactively?

My guess is a privilege thing... but this should help bring out an error.



The following is generated when running interactively:

Verifying server name...
Verifying server and database time difference...
Initializing Extensions...
Unhandled Exception: System.ArgumentNullException: Value cannot be null.
Parameter name: extensionsPath
at Inedo.BuildMaster.Extensibility.ExtensionsManager.Initialize(String extensionsPath, Assembly[] additionalAssemblie
at Inedo.BuildMaster.Extensibility.ExtensionsManager.Initialize(String extensionsPath)
at Inedo.BuildMaster.Windows.ServiceApplication.BuildMasterService.ServiceStart(BuildMasterService asyncService)
at Inedo.BuildMaster.Windows.ServiceApplication.BuildMasterService.RunInteractively()
at Inedo.BuildMaster.Windows.ServiceApplication.Program.RunInteractively(Boolean waitForEnterKey)
at Inedo.BuildMaster.Windows.ServiceApplication.Program.ConsoleMain(Arguments args)
at Inedo.BuildMaster.Windows.ServiceApplication.Program.Main(String[] args)

Hi Dan,

Ah, yes; the service will not run without a valid ExtensionsPath. You can set this from the webUI, or just do

UPDATE Configuration SET Value_Text='C:\BuildMaster\Extensions' WHERE Key_Name='ExtensionsPath'


Hi Alex,

Thank you for this. The items in the Configuration table are actually different between a manual and automaticaly installed database.

Missing items from manual installed db:

Extra items in manual installed db:

This does not give me confidence in the integrity of the manual database installation as there may be any number of other missing data items in other tables. Is there a chance we could get corrected manual installation files?

Are you planning on using IIS to host the BuildMaster web application? If so, you're all set. The IntegratedWebServer_ config values are only for hosting BuildMaster with the integrated web server. If you're going that route I can give you those values if you'd like.

The "HasLoggedIn" value is only used to do initial setup of the example application and will be created and default to false if not present on the web app first load.

The only table touched by the installer that would change its values is the configuration table - everything else database related is generated by the installer using the changescripter tool (bmdbupdate.exe) just as if you ran it manually against the DB.