2

最近遇到了 Azure Worker Role 服务几乎每天都会重启的问题。这对我们来说是一个大问题,因为我们的服务需要大约 20 分钟来初始化,而这些重启可能会导致停机。
我通过 RDP 登录到实例并查看事件日志以找出导致这些看似随机重启的原因。我遇到了一些总是在重新启动之前的条目:

在此处输入图像描述

MsiInstaller 安装的服务是“Windows Azure Remote Forwarder”。我假设已安装此服务,因为我们在工作人员角色配置中启用了远程桌面。有趣的是,我们已经启用了 RDP 很长一段时间(大约 2 年),但随机重启只是在 4 周前发生。
但是有几件事我不太明白:

  1. 为什么此服务安装或更新如此频繁?
  2. 我知道 RestartManager 负责安装/更新服务,而无需通过停止其他阻止文件的服务来重新启动机器。
    我们的服务是否有可能阻止一些重要文件?
    我们使用本地磁盘存储临时文件会不会是个问题?
  3. 是否可以告诉 RestartManager 不理会我们的 Worker Role 服务?
  4. 这只是巧合吗?重启是由我们的服务以某种方式触发的,尽管没有日志表明我们这边有错误?

任何帮助是极大的赞赏。

谢谢,
卡斯滕

4

1 回答 1

1

自我修复:您看到的很可能是 Windows Installer 自我修复。如果文件被意外修改,这是一种将文件放回原位的机制,但这个最初的目的可能会引发很多问题并导致无休止的修复循环——这可能就是这里发生的事情。Very likely another product has been installed and an un-fixable error situation now exists that triggers continued and failed attempts to repair via MSI self-repair. The conflict situation must be identified with logging and event viewer debugging and a suitable fix has to be applied现实世界的修复)。

简洁说明:这是关于我所拥有的自我修复或“弹性”真正含义的最简明解释: 如果我删除文件,为什么 MSI 安装程序会重新配置?

重新启动管理器重新启动管理器功能- 正如您自己所说的(其他人可能会阅读) - 只是一种设置重新启动应用程序的方法,而不是通过“使应用程序能够自行关闭并以受控方式重新启动”来要求系统重新启动。

  • 发生的情况可能是您的服务未能使用其本机启动/停止程序及时关闭 - 或者 MSI 未尝试使用内置的 MSI 服务控制机制重新启动服务。您的服务要么没有及时停止,要么完全没有停止。也许。我想这可能会触发重启管理器事件。当然,如果您将 REINSTALLMODE 设置为"amus"- 强制覆盖所有文件,无论版本如何。
  • 看到这里的人是开发人员,也许是如何在您的应用程序中实现重新启动管理器支持的技术示例:如何向我的应用程序添加对 Windows 重新启动管理器的支持?高级安装程序)。
  • 大量重启管理器链接和信息(中页)

默认 MSI 日志记录:一个调试起点是正确记录所有 MSI 操作- 每当您安装、重新安装或修复时,临时目录中都会有一个日志文件(某些系统管理员并不总是可以接受)。"Globally for all setups on a machine"您可以按照上述链接部分中的过程为所有 MSI 安装启用日志记录


详细的自我修复:我之前写过很多关于意外自我修复的文章。比任何人都想知道的要多。这是一个非常愚蠢的问题,由于很少有人熟悉 Windows Installer 的操作,因此确实会导致解决非常昂贵的问题:

  1. 自我修复 - 解释
  2. 自我修复 - 寻找现实世界的解决方案
  3. 自我修复 - 如何在您自己的包裹中避免它

调试:以上答案中提供了以下所有信息,但这里有一些快速提示:

  • 您可以使用以下方法确定触发修复的确切 MSI 组件:http: //www.installsite.org/pages/en/msifaq/a/1037.htm
  • 打开事件查看器并在“应用程序”中查找带有事件源的警告"MsiInstaller":ID10011004.
  • 最近安装的另一个软件包可能会触发持续的错误情况,在修复过程中无法永久解决,您必须确定来源并以某种方式消除它。上面的第二条链接(在此重复:寻找现实世界的解决方案)。

重启:这台机器多久重启一次?许多机器都注册了许多挂起的重新启动,这些重新启动从未完成并且可能导致问题。触发重新启动(警告)可能涉及许多注册表位置。获取-PendingReboot-查询。还有一个类似的 PowerShell 脚本

锁定问题:只想提一些应用程序以非常低级的方式锁定资源的问题,例如防病毒恶意软件保护套件

于 2019-03-22T22:45:23.417 回答