【问题标题】:The installer has encountered an unexpected error installing this package - .Error code 2896安装程序在安装此软件包时遇到意外错误 - 错误代码 2896
【发布时间】:2018-04-19 06:52:40
【问题描述】:

我目前正在尝试在产品服务器上安装 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, ,

这意味着什么?

【问题讨论】:

  • 好吧,如果您的许可证没问题并且文件存在,那么我会使用另一个路径。我想,该许可证检查器试图打开具有写访问权限的文件,并且 c:\ 中的写访问权限需要管理员权限。因此,您可以尝试将 license.xml 复制到具有授予写入权限的文件夹中。

标签: .net windows-installer ravendb ravendb-studio


【解决方案1】:

许可:我敢打赌这是一件非常简单的事情——像您提出的许可问题。我同意 Vadim 的观点,即您应该将 license.xml 放在其他地方 - 具有写入权限。也许只是创建一个名为 RavenDBLicense 的新文件夹 - 在某个地方 - 并确保它可写入 systemadministrators - 至少。例如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!,这将连续写入日志而不是批量写入,确保不会因崩溃而丢失日志缓冲区。这会使安装大大变慢,但可以捕获关键的调试信息,以防有问题的自定义操作崩溃。


一些链接:

【讨论】:

  • sys/admin 确实具有在 C: 驱动器上读/写的完全访问权限。我尝试了高级日志记录,但由于它不是 .msi 而是 .exe,所以它不起作用。事件查看器显示相同的错误。所以邮件列表提供的解决方案似乎是我唯一的选择..
  • 好的。上面列表中的中间链接显示了如何记录带有嵌入式 MSI 的 setup.exe 安装程序。 setup.exe 也可能不包含 MSI,但在您的情况下它包含(如您的日志提取所证明的那样)。希望你得到的解决方案能解决问题。祝你好运。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多