我正在努力完成一项非常简单的任务,数小时没有成功。 我只想将消息记录到Windows Azure存储中,以便稍后进行分析。
我尝试过的目标:
我已启用诊断功能:
之后我将这一行放在Application_Start
:
Trace.TraceError("My Error");
我希望它能够登录到Windows Azure存储。但事实并非如此。然后我读了here我应该首先配置DiagnosticMonitor
类。但是我认真地认为这个类已经被弃用..因为它在汇编Microsoft.WindowsAzure.StorageClient
中是版本1.7(其他版本是1.8或2.0),当我添加对它的引用时,我的所有CloudStorageAccount
引用变为模糊不清,因为这个程序集包含了我已经拥有的其他程序集Microsoft.WindowsAzure.Storage
(更新)的类。我真的认为我不应该添加对StorageClient
的引用。
简单地说..我正在阅读很多文件而无处可去。
你可以请...告诉我究竟做了什么?我非常感激。感谢。PS:我正在使用VS 2012与Windows Azure Tools 2012年10月
答案 0 :(得分:1)
您已完成的操作(在屏幕截图中)启用了诊断功能。接下来您需要做的是在代码中配置诊断程序。为此,请按照下列步骤操作:
在web.config中添加以下代码行:
<system.diagnostics>
<trace>
<listeners>
<add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics">
<filter type=""/>
</add>
</listeners>
</trace></system.diagnostics>
在角色的OnStart()方法中配置诊断。该代码仅用于跟踪日志:
DiagnosticMonitorConfiguration config = DiagnosticMonitor.GetDefaultInitialConfiguration();
// Set an overall quota of 8GB.
config.OverallQuotaInMB = 4096;
// Set the sub-quotas and make sure it is less than the OverallQuotaInMB set above
config.Logs.BufferQuotaInMB = 512;
TimeSpan myTimeSpan = TimeSpan.FromMinutes(2);
config.Logs.ScheduledTransferPeriod = myTimeSpan;//Transfer data to storage every 2 minutes
// Filter what will be sent to persistent storage.
config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Undefined;//Transfer everything
// Apply the updated configuration to the diagnostic monitor.
// The first parameter is for the connection string configuration setting.
DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", config);
这应该用于诊断。
关于旧版和新版存储客户端库的混淆:目前,Windows Azure诊断模块依赖于旧版存储客户端库(Microsoft.WindowsAzure.StorageClient.dll
)。因此,您需要确保在项目中引用此库。您可以从C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-10\ref
文件夹手动添加引用。如果您同时使用旧的存储客户端库和新的存储客户端库(Microsoft.WindowsAzure.Storage.dll
),则会出现混淆。因此,您需要确保CloudStorageAccount对象的范围正确。
设置完所有内容后,您应该能够看到存储帐户中创建的名称WADLogsTable
的表格以及该表格中的数据。