Azure Web Site中的DiagnosticMonitor

5
你能在Azure Web站点(而不是Web角色)中使用Azure DiagnosticMonitor吗?还是需要计算角色?
2个回答

5
不,Azure DiagnosticsMonitor仅适用于Web/Worker角色。Azure WebSite的诊断与任何Web应用程序一样普遍。由于Azure WebSites使用持久性存储,因此您可以安全地编写日志文件(请记住,您正在使用多线程环境,就像在任何ASP.NET或任何Web应用程序中一样)。此外,您可以在WebSite的“配置”选项卡中配置其他诊断选项:

Azure WebSites Diagnostics

您可以打开详细的错误消息和失败请求跟踪。 您可以从站点的FTP服务器下载失败请求日志。
您可以在Web应用程序(如果是ASP.NET)中使用log4net进行详细的错误/跟踪记录。 这里有一些教程

持久存储不是特定于虚拟机吗?我有兴趣从我的应用程序中收集自定义跟踪消息并将其放置在一个中央位置。 - Matt Randle
持久性存储是VM + WebSites特定的。您的Azure WebSite(不是WebRole,而是WebSite)使用持久性存储,并且使用提供的存储绝对安全。请注意,WebSites的存储容量为1 Gb。如果您需要更多 - 那么您必须考虑使用Blobs。 - astaykov
使用log4net和textfileappender,如果有多个Web站点实例ID,是否可以拥有多个物理日志? - Matt Randle
1
@astaykov,请澄清您的答案:如果我们将Azure网站扩展到10个VM实例,日志是否聚合(针对整个网站),还是每个VM分别存储在各自的VM中? - Fernando Correia

4

很抱歉,您不能在 Azure 网站中使用 Windows Azure 诊断(DiagnosticsMonitor)。您需要使用计算角色才能实现。


好的,谢谢。你有任何跟踪消息日志记录的建议吗?也许是编写直接写入表服务的自定义跟踪附加程序? - Matt Randle
请查看以下博客文章 - http://blog.smarx.com/posts/lightweight-tracing-to-windows-azure-tables 和 http://www.wadewegner.com/2011/08/using-elmah-in-windows-azure-with-table-storage/。 - Gaurav Mantri
谢谢Guarav,我可能会选择类似的东西(log4net -> 表格),但是有点担心性能。 - Matt Randle
3
请勿在除演示应用程序之外的任何情况下记录到表格中。您会阻塞进程以等待绑定到IO调用的写入表存储,当存储超时时,您的应用程序会崩溃(它确实会)。这对可扩展性非常糟糕。请使用了解如何以非阻塞方式写入的跟踪侦听器或日志记录框架。 - dunnry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接