4

将我的 azure 项目升级到 SDK 版本 1.7 后,日志已停止传输到存储。我已经看了几个小时,看不出发生了什么变化(差异也无济于事)。

我想我需要一双新的眼睛来帮助定位问题。你看这里有什么不对吗?1.7SDK 中的设置是否发生了变化?

网页配置

  <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>

云配置

<ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"
               value="DefaultEndpointsProtocol=https;AccountName=[account];AccountKey=[key]" />
</ConfigurationSettings>

启动

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();
4

2 回答 2

8

问题在于您的 web.config,您需要将程序集版本更新为 1.7.0.0:

Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener,Microsoft.WindowsAzure.Diagnostics,版本= 1.7.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35

于 2012-06-23T13:34:52.357 回答
0

您还需要遵循@Sandrino 的建议,我也看到了一些代码问题。您还没有使用 SetCurrentConfiguration() 和 GetDefaultInitialConfiguration() 来最终节省传输时间和日志级别。您必须使用这些 API 的集合,如下所示:

GetDefaultInitialConfiguration() 
SetCurrentConfiguration() 

或者

GetCurrentConfiguration()
SetCurrentConfiguration()

如果您开始在应用程序中收集跟踪消息,这可能会导致问题,因此最好让此代码完整..

于 2012-06-23T16:12:54.557 回答