我目前正在尝试在prod服务器上安装ravendb。我使用的licens文件与另一个test / prod服务器一样。
当我将许可证文件传递给安装程序时,安装似乎一直在崩溃。
我在日志文件中发现有趣的东西是这个。
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.
许可证文件的路径是正确的,为什么会失败?
可以使用许可证文件的测试/产品服务器的数量是否有一些限制,如果是这样,我如何检查可能使用此许可证文件的服务器数量?
如果不是这样,那么我是否缺少任何依赖? - 是否需要访问互联网? - 是否需要安装其他东西?
除此之外我还注意到了这一行
安装程序在安装此程序包时遇到意外错误。这可能表明此包装存在问题。错误代码是2896.参数是:LicenseFileExists ,,
这表明了什么?
答案 0 :(得分:0)
许可 :我敢打赌这很简单 - 就像您提出的许可问题一样。我同意Vadim你应该将license.xml
置于其他地方 - 具有写访问权限。也许只需创建一个名为RavenDBLicense的新文件夹 - 某处 - 并确保它对system
和administrators
可写 - 至少。例如c:\RavenDBLicense
- 仅用于测试。
该license.xml
文件中是否有特定于机器或特定于用户?
更新:我看到您在论坛上得到了答案,并指出了此解决方案:https://ravendb.net/docs/article-page/3.5/csharp/server/configuration/license-registration。
还有how to run the installer部分 - 我认为你很熟悉。
调试 :首先尝试的最好方法是最大化可用的日志记录信息 - 如果可能的话。我会尝试这两种方法,看看我是否能找到更好的线索。
事件查看器 :我想您可能想检查Windows事件查看器中是否记录了任何错误消息?按住 Windows键,点击 R ,输入eventvwr.msc
并按Enter键。转到Windows Logs => Applications
。寻找MsiInstaller events
。我不认为你会找到任何东西,但值得一看。另请查找与ravendb
相关的其他事件。检查其他日志(安全性,系统,配置)。
高级日志记录 :您还可以打开高级日志记录并捕获MSI安装的更多调试信息,如下所示:
msiexec.exe /i MySetup.msi /L*vx C:\Test.log
这应该捕获比当前日志更多的信息。您还可以将!
添加到日志交换机,使其成为/L*vx!
,这将连续写入日志而不是批量写入,从而确保崩溃不会丢失日志缓冲区。这会使安装很多变慢,但可以捕获重要的调试信息,以防有问题的自定义操作崩溃。
一些链接:
答案 1 :(得分:0)
基本问题似乎是自定义操作LicenseFileExists失败了。这并不意味着路径是错误的,但它确实意味着代码失败了。错误2896表示"操作失败"。
因此,在不了解代码所做的事情的情况下,不能真正诊断出它失败的原因。假设代码实际上完全正确,可能存在安全问题,因为在UI序列中运行的自定义操作不会以提升运行,并且可能不允许访问该文件。