RestartManager导致worker角色重新启动

问题描述 投票:2回答:1

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

enter image description here

MsiInstaller安装的服务是“Windows Azure Remote Forwarder”。我假设此服务已安装,因为我们在worker角色配置中启用了远程桌面。有趣的是,我们已经启用了很长时间(2年左右)的RDP,但随机重启仅在4周前发生。 但有一些事情比我不太明白:

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

任何帮助是极大的赞赏。

谢谢, 卡斯滕

wcf azure azure-worker-roles restartmanager
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 appliedreal-world fixes)。

Terse说明:以下是关于我所拥有的自我修复或“弹性”的最简洁的解释:Why does the MSI installer reconfigure if I delete a file?

重启管理器:Restart Manager feature是 - 就像你自己说的那样(其他人可能会阅读) - 只是一种设置重启应用程序的方式,而不需要通过“使应用程序能够自行关闭并以受控方式重新启动”来重启系统。

  • 发生的情况可能是您的服务无法使用其本机启动/停止过程及时关闭 - 或者MSI不会尝试使用内置的MSI服务控制机制重新启动服务。您的服务未能及时停止或未能完全停止。也许。我想这可能会触发Restart Manager事件。当然,如果您将REINSTALLMODE设置为"amus" - 强制覆盖所有文件,无论版本如何。
  • 看到这里的人是开发人员,可能是如何在您的应用程序中实现Restart Manager支持的技术示例:How do I add support for Windows Restart Manager to my application?Advanced Installer)。
  • Lots of Restart Manager links and information(中页)

默认MSI日志记录:一个调试起点是log all your MSI operations properly - 无论何时安装,重新安装或修复,临时目录中都会有一个日志文件(某些系统管理员并不总是可以接受)。您可以按照上述链接中的"Globally for all setups on a machine"部分中的步骤为所有MSI安装启用日志记录。


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

  1. Self-repair - explained
  2. Self-repair - finding real-world solutions
  3. Self-repair - how to avoid it in your own package

调试:以上所有信息都可以在上面的答案中找到,但这里有一些快速指示:

  • 您可以使用以下方法确定触发修复的确切MSI组件:http://www.installsite.org/pages/en/msifaq/a/1037.htm
  • 打开事件查看器并在“应用程序”中查看事件源"MsiInstaller":IDs 10011004的警告。
  • 最近安装的另一个软件包可能会触发一个常见的错误情况,在修复期间无法永久解决,您必须确定源并以某种方式消除它。上面的第二项链接(在此重复:finding real-world solutions)。

待重启:此机器多久重启一次?许多计算机都有许多未注册的挂起重新启动,但这些计划从未完成,并且可能会导致问题。触发重启(警告)可能涉及许多注册表位置。 Get-PendingReboot-Query。和a similar PowerShell script

锁定问题:只想提及some applications locking resources in a very low-level way的问题,例如防病毒和恶意软件防护套件。

© www.soinside.com 2019 - 2024. All rights reserved.