Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

Cannot get manual BuildMaster database installation working with service



  • 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?

    http://inedo.com/support/kb/1015/running-the-buildmaster-services-interactively

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

    Alex



  • Alex,

    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
    s)
    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'

    Alex



  • 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:
    ExtensionsPath
    HasLoggedIn
    IntegratedWebServer_ReservationUser
    IntegratedWebServer_WebAppPath

    Extra items in manual installed db:
    IntegratedWebServer_Prefixes

    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.



Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation