0

我目前正在尝试在产品服务器上安装 ravendb。我正在使用的许可证文件与另一个测试/生产服务器使用的相同。

当我将许可证文件传递给安装时,安装似乎一直在崩溃。

我在日志文件中发现有趣的是这个。

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, ,

这能说明什么?

4

2 回答 2

0

许可:我敢打赌这是一件非常简单的事情 - 像您提出的许可问题。我同意 Vadim 的观点,即您应该将其license.xml放在其他地方 - 具有写入权限。也许只是创建一个名为 RavenDBLicense 的新文件夹 - 在某个地方 - 并确保它是可写的system-administrators至少。例如c:\RavenDBLicense- 仅用于测试。

该文件中是否有任何特定于机器特定于用户的license.xml内容?


更新:我看到你在他们的论坛上得到了答案,表明这个解决方案:https ://ravendb.net/docs/article-page/3.5/csharp/server/configuration/license-registration 。

还有一节是关于如何运行安装程序的——我假设你很熟悉。


调试:也许首先尝试的最好的事情是最大化可用的日志信息——如果可能的话。我会尝试这两种方法,看看是否能找到更好的线索来了解正在发生的事情。

事件查看器:我想您可能想检查 Windows 事件查看器中是否记录了任何错误消息?按住Windows Key,点击R,输入eventvwr.msc并按回车。去Windows Logs => Applications。寻找MsiInstaller events。我认为您不会找到任何东西,但值得一看。还要寻找与ravendb. 检查其他日志(安全、系统、配置)。

高级日志记录:您还可以打开高级日志记录并为 MSI 安装捕获更多调试信息,如下所示:

msiexec.exe /i MySetup.msi /L*vx C:\Test.log

这应该比您当前的日志捕获更多的信息。您还可以添加!到日志开关,使其/L*vx!,这将连续写入日志而不是批量写入,以确保不会因崩溃而丢失日志缓冲区。这会使安装速度变慢,但可以捕获关键的调试信息,以防有问题的自定义操作崩溃。


一些链接:

于 2018-04-19T18:14:28.610 回答
0

基本问题似乎是自定义操作 LicenseFileExists 失败了。这并不意味着路径错误,而是意味着代码失败了。错误 2896 表示“操作失败”。

因此,在不了解代码的作用的情况下,实际上不可能诊断出它失败的原因。假设代码实际上完全正确,则可能存在安全问题,因为在 UI 序列中运行的自定义操作不会随提升运行,并且可能不允许访问文件。

于 2018-04-19T19:33:12.797 回答