Azure - 为工作人员/ Web角色启用诊断

时间:2015-06-14 13:52:48

标签: azure logging azure-diagnostics

我想在我的表存储中记录发生的每个异常(MVC cloudapp)。

我遵循了微软的官方教程,但似乎只是让事情太复杂了。可以在这里查看教程: https://azure.microsoft.com/sv-se/documentation/articles/cloud-services-dotnet-diagnostics/#how-to-enable-diagnostics-in-a-worker-role

仅仅因为默认情况下不支持Azure诊断1.3,感觉太麻烦了?在web / worker角色的配置窗口中有一个更快更容易的选项,让你启用诊断,但仅适用于1.0?

我只想在我的存储帐户中记录例外,以便Azure Diagnostics 1.0应该足够了,不是吗?

我做了什么:

  1. 通过单击配置窗口中的Web和辅助角色的复选框,在我的工作人员和Web角色中启用诊断。
  2. 指定了存储帐户凭据。
  3. 我需要帮助:

    我的存储空间中没有创建WAD容器。在我启用并指定存储帐户凭据后,是否应该创建它们?

    为什么启用Azure诊断1.3与1.0相比如此复杂?

    工作者角色诊断和Web角色诊断之间有什么区别?如果我在webrole中使用我的应用程序并以工作者角色缓存..是否会单独记录?如果我想要应用程序和缓存的异常日志记录,是否需要同时启用它们?

2 个答案:

答案 0 :(得分:2)

回答你的问题:

  

我的存储空间中没有创建WAD容器。他们不是吗?   应该在我启用并指定存储后创建   帐户凭据?

如果您正在寻找wad-control-container,那么就不会创建它。但是,如果在诊断配置中启用了容器,则应该看到IIS日志,失败请求日志和崩溃转储的容器。

  

与Azure相比,为什么启用Azure诊断1.3这么复杂   1.0

基本上诊断模型已经改变。 版本1.0是插件模型,而版本1.3是扩展模型(它在引入版本1.2时从SDK 2.5更改)。不管它是否复杂,我认为这是值得商榷的。虽然1.0版本相当简单并具有一些功能,例如在代码中定义诊断配置,但我认为1.3是朝着正确方向迈出的一步。我也开始感到沮丧,但现在我意识到它提供的好处,因为我更多地使用它。吸引我的一些好处是:

  • 纯粹的decalarative模型而不是混合模型(Programmatic + Decalarative)。
  • 收集云服务和虚拟机的诊断数据的统一方法(此时仅限Windows)。
  • 能够动态启用/禁用诊断配置,因为它现在是扩展模型。
  • 支持ETW日志。

我在1.3中不喜欢的一些事情:

  • 如果您未通过Visual Studio进行部署,则部署过程会相当复杂。
  • 有限的工具支持。只有Visual Studio或PowerShell可用的选项。目前,Portal(当前和预览版)都不支持它。
  • 已弃用On-Demand Transfer功能。我们经常使用此功能,因为它依赖于基于代码的诊断更改。
  

工作人员角色诊断与Web角色之间的区别是什么   诊断?

AFAIK,两者之间没有区别。这完全取决于您希望为每个角色收集哪些诊断数据。

  

如果我在webrole中使用我的应用程序并以工作者身份缓存。是吗?   单独记录?

嗯,是的,不是。每个角色都会获得自己的diagnostics.wadcfgx文件,您可以在其中定义用于存储诊断数据的存储帐户。如果您在每个角色的wadcfgx文件中定义不同的存储帐户,则数据将进入单独的存储帐户。即使您保留相同的存储帐户,数据也会包含role namerole instance name,以便您可以区分不同的诊断数据。

  

如果我想要两个应用程序的异常日志记录,是否需要同时启用它们   和缓存?

是。你需要启用它们。

答案 1 :(得分:2)

有一个 simple PowerShell script on GitHub可以在云服务(Web /工作者角色)或零麻烦的虚拟机上启用WAD。同时,它还会将WAD配置为将日志发送到Visual Studio Application Insights,以便您可以搜索&有效地查询。