【问题标题】:DiagnosticMonitor in Azure Web SiteAzure 网站中的诊断监视器
【发布时间】:2012-10-04 21:55:44
【问题描述】:

您可以在 Azure 网站(不是 Web 角色)中使用 Azure DiagnosticMonitor 吗?还是需要计算角色?

【问题讨论】:

    标签: c# azure azure-web-app-service azure-diagnostics


    【解决方案1】:

    不,

    Azure DiagnosticsMonitor 仅适用于 Web/Worker 角色。 Azure 网站中的诊断对于任何 Web 应用程序都很常见。由于 Azure 网站使用持久存储,因此您可以安全地编写日志文件(请记住,您正在使用多线程环境,例如在任何 ASP.NET/或任何 Web 应用程序中)。此外,您可以在网站的“配置”选项卡中配置其他诊断选项:

    您可以打开详细错误消息 + 失败请求跟踪。您可以从您站点的 FTP 服务器下载失败的请求日志。

    您可以使用log4net 在您的 Web 应用程序(如果它是 ASP.NET)中记录详细的错误/跟踪日志。 Some tutorial here.

    【讨论】:

    • 持久存储虚拟机不是特定的吗?我有兴趣在中心位置从我的应用收集自定义跟踪消息
    • 持久存储是特定于 VM + 网站的。您的 Azure 网站(不是 WebRole,而是 WebSite)使用持久存储,使用它提供的存储是绝对安全的。请注意,网站的存储空间为 1 Gb。如果您需要更多 - 不必考虑 Blob。
    • 使用 log4net 和 textfileappender 和 > 1 个网站实例 id 有多个物理日志?
    • @astaykov,请澄清您的答案:如果我们有一个 Azure 网站扩展到 10 个 VM 实例,日志是聚合的(针对整个网站)还是每个 VM 分开并存储在每个 VM 中?
    【解决方案2】:

    不,您不能在 Azure 网站中使用 Windows Azure 诊断 (DiagnosticsMonitor)。您需要为此使用计算角色。

    【讨论】:

    • 好的,谢谢。您对跟踪消息记录有什么建议吗?可能是直接写入表服务的自定义 traceappender 吗?
    • 谢谢 Guarav,我可能会使用类似的东西(log4net -> table),但有点担心性能。
    • 除了演示应用程序之外,不要登录到表中。您阻止进程等待 IO 绑定调用以写入表存储,并且您的应用程序在存储超时时崩溃(确实如此)。这对于可扩展性来说是可怕的。使用知道如何以非阻塞方式编写的跟踪侦听器或日志框架。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多