我已经部署了我的azure云服务,但我的一些实例仍然不健康并继续回收。我看到'回收(角色遇到了错误并且已经停止。已在状态列中部署了站点。',用于不健康的实例。
我为配置窗格中无法正常工作的角色启用了诊断功能,但我不知道在哪里可以找到实例的日志。你能告诉我在哪里找到吗?
谢谢,
答案 0 :(得分:3)
由于这是一个非常受欢迎的问题,我想在此提供一个深入的解释,因此您可能已经知道了一些这些内容:
实例回收时有一些流行的场景:
1)您的应用程序缺少不允许IIS启动应用程序的依赖DLL。
2)您的WorkerRole.cs或WebRole.cs包含未处理的异常
3)您的启动脚本包含错误
为了正确调试此问题,您需要确保:
1)在Role的属性上启用Azure诊断(可以通过复选框在Visual Studio中完成)。托管诊断数据需要存储帐户。它可以是您通过发布解决方案的那个。
2)您的WebRole.cs和/或WorkerRole.cs文件包含正确的try / catch,并记录到某些外部存储。由于Azure诊断支持将数据传输到外部存储,因此记录到跟踪似乎最简单。
3)您已将Azure诊断配置为实际将正确的数据传输到诊断存储帐户。最好的方法是输入一个diagnostics.wadcfg文件以及包含传输EventViewer,基础结构和跟踪日志所需配置的解决方案。
4)最后,您需要在应用程序的app.config中配置监控跟踪日志,以便Trace基础架构实际监听您的跟踪调用。
此link包含有关上述所有信息的更深入信息。
最后,完成所有这些操作后,您实际上可以检查诊断存储帐户中的数据以查看错误。有工具可以提供帮助:
1)RedGate / Cerebrata管理工作室@ http://www.cerebrata.com/products/azure-management-studio/introduction(商业产品)
2)Visual Studio中的内置工具可帮助您浏览任何存储帐户的内容。 (您必须使用它手动搜索和查询必要的WAD表和容器,但它是免费的)
3)AzureWatch @ http://www.paraleap.com(商业产品,面向主动监控,但允许您按需检查大部分日志,免责声明:我与此产品有关联)
希望这有帮助
答案 1 :(得分:0)
尝试使用Azure Explorer等浏览blob存储的内容。如果启用了诊断,则Azure会将配置保留在名为wad-control-container
的Azure blob中。