将我的azure项目升级到SDK版本1.7后,日志已停止转移到存储。我一直在看这几个小时,看不出有什么变化(差异也没有帮助)。
我想我需要一套新眼睛来帮助定位问题。你觉得这里有什么不对吗?设置是否在1.7SDK中发生了变化?
的Web.config
<system.diagnostics xdt:Transform="Insert">
<trace>
<listeners>
<add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics">
<filter type="" />
</add>
</listeners>
</trace>
</system.diagnostics>
服务定义
<Imports>
<Import moduleName="Diagnostics" />
</Imports>
CloudConfig
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"
value="DefaultEndpointsProtocol=https;AccountName=[account];AccountKey=[key]" />
</ConfigurationSettings>
的OnStart
var config = DiagnosticMonitor.GetDefaultInitialConfiguration();
//event log
config.WindowsEventLog.DataSources.Add("System!*");
config.WindowsEventLog.DataSources.Add("Application!*");
config.WindowsEventLog.ScheduledTransferPeriod = TimeSpan.FromMinutes(5);
config.WindowsEventLog.ScheduledTransferLogLevelFilter = LogLevel.Warning;
config.Logs.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(5);
config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Information;
DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", config);
return base.OnStart();
答案 0 :(得分:8)
问题在于您的web.config,您需要将程序集版本更新为1.7.0.0:
Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener,Microsoft.WindowsAzure.Diagnostics,Version = 1.7.0.0 ,Culture = neutral,PublicKeyToken = 31bf3856ad364e35
答案 1 :(得分:0)
你需要关注@Sandrino建议,我也会看到一些代码问题。您尚未将GetCaultConfiguration()与GetDefaultInitialConfiguration()一起使用,以最终保存传输时间和日志级别。您必须使用以下API集:
GetDefaultInitialConfiguration()
SetCurrentConfiguration()
OR
GetCurrentConfiguration()
SetCurrentConfiguration()
如果您开始在应用程序中收集跟踪消息,这可能会导致problem,这样可以更好地完成此代码。