代码之家  ›  专栏  ›  技术社区  ›  nano

安装程序在安装此包时遇到意外错误-。错误代码2896

  •  0
  • nano  · 技术社区  · 6 年前

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

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

    我在日志文件中发现了一个有趣的地方。

    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,

    这意味着什么?

    2 回复  |  直到 6 年前
        1
  •  0
  •   Stein Åsmul    6 年前

    许可证 :我打赌这是一个很简单的问题-就像你提议的许可问题。我同意瓦迪姆的意见,你应该把 license.xml 其他地方-具有写访问权限。也许只需在某处创建一个名为RavenDBLicense的新文件夹,并确保其可写入 system administrators -至少是这样。例如 c:\RavenDBLicense -只是为了测试。

    有什么事吗 特定于机器 特定于用户 因为 许可证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! ,这将连续写入日志,而不是成批写入,确保不会因崩溃而丢失日志缓冲区。这使得安装 很多 速度较慢,但可以捕获关键的调试信息,以防出现问题的自定义操作崩溃。


    一些链接:

        2
  •  0
  •   PhilDW    6 年前

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

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