I am currently trying to install ravendb on a prod server. The licens file I am using, is the same being used for another test/prod server.
The installation seem to chrash all the time when i pass the license file to the installation.
Something i found interesting in the log file was this.
Action start 08:14:02: OpenLicenseFileChooser.
MSI (c) (AC:A8) [08:14:02:763]: Invoking remote custom action. DLL: C:\Users\prod\AppData\Local\Temp\MSI7901.tmp, Entrypoint: OpenLicenseFileChooser
MSI (c) (AC!30) [08:14:04:934]: PROPERTY CHANGE: Adding RAVEN_LICENSE_FILE_PATH property. Its value is 'C:\license.xml'.
Action ended 08:14:04: OpenLicenseFileChooser. Return value 1.
MSI (c) (AC:F0) [08:14:04:950]: Doing action: LicenseFileExists
Action 08:14:04: LicenseFileExists.
Action start 08:14:04: LicenseFileExists.
MSI (c) (AC:20) [08:14:04:997]: Invoking remote custom action. DLL: C:\Users\prod\AppData\Local\Temp\MSI81BD.tmp, Entrypoint: LicenseFileExists
MSI (c) (AC!FC) [08:14:05:231]: PROPERTY CHANGE: Deleting RAVEN_LICENSE_VALID property. Its current value is 'False'.
MSI (c) (AC!FC) [08:14:05:231]: PROPERTY CHANGE: Adding RAVEN_INSTALLER_INFO property. Its value is 'Checking existing license file'.
Action ended 08:14:07: LicenseFileExists. Return value 3.
DEBUG: Error 2896: Executing action LicenseFileExists failed.
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2896. The arguments are: LicenseFileExists, ,
Action ended 08:14:07: WelcomeDlg. Return value 3.
MSI (c) (AC:1C) [08:14:07:281]: Doing action: CustomFatalError
Action 08:14:07: CustomFatalError.
Action start 08:14:07: CustomFatalError.
The path to the license file is correct, so why does it fail?
Is there some limitation on the number of test/prod server that can use the license file, and if so, how do i check the number of servers that may use this license file?
And if that is not the case, are there any dependencies i am missing? - Does it need acess to the internet? - does it need something else installed?
besides this I also noticed this line
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2896. The arguments are: LicenseFileExists, ,
what could this indicate?
The basic issue seems to be that the custom action LicenseFileExists has failed. This doesn't mean that the path is wrong, but it does mean that the code has failed. Error 2896 means "the action has failed".
So without knowing something about what the code does it's not really possible to diagnose why it fails. Assuming that the code is actually completely correct, there might be a security issue because custom actions that run in the UI sequence do not run with elevation, and access to the file might be disallowed.
Licensing: I bet this is something very simple - a licensing issue like you propose. I would agree with Vadim that you should put the
license.xml
somewhere else - with write access. Maybe just create a new folder called RavenDBLicense - somewhere - and make sure it is writeable forsystem
andadministrators
- at the very least. For examplec:\RavenDBLicense
- just for testing.Is there anything machine-specific or user-specific in that
license.xml
file?UPDATE: I see you have gotten an answer on their forum, indicating this solution: https://ravendb.net/docs/article-page/3.5/csharp/server/configuration/license-registration.
There is also a section on how to run the installer - that I assume you are familar with.
Debugging: Maybe the best thing to try first is to maximize the available logging information - if possible. I would try both approaches to see if I could find any better clues as to what is going on.
Event Viewer: I suppose you might want to check if there are any error messages logged in the Windows Event Viewer? Hold down Windows Key, tap R, type in
eventvwr.msc
and press enter. Go toWindows Logs => Applications
. Look forMsiInstaller events
. I don't think you will find anything, but it is worth a look. Also look for other events related toravendb
. Check the other logs too (Security, System, Configuration).Advanced Logging: You can also turn on advanced logging and capture more debugging information for the MSI installation like this:
This should capture a little bit more information than your current log. You can also add
!
to the log switch, making it/L*vx!
, this will write the log continuously instead of in batches ensuring that no log buffer is lost from crashes. This makes the install a lot slower, but could capture crucial debugging information in case the custom action in question is crashing.Some links: