Azure诊断:跟踪消息在VS2012默认模板中不起作用

时间:2012-11-03 06:41:59

标签: trace system.diagnostics azure-diagnostics

我无法让Azure诊断程序吐出任何我的跟踪消息 - 即使是在即将推出的VS2012项目模板中也是如此。这是我做的:

  1. 在一个空的VS2012中,创建了一个新的Cloud项目(称为“Azure.Diag”)
  2. 在向导的下一步中,添加了“WCF服务Web角色”的默认模板(称为“WCFService.WebRole”)
  3. 编辑Web.Config以启用诊断(详情如下)
  4. 编辑WebRole.cs以吐出诊断跟踪消息(详情如下)
  5. 在Azure模拟器中本地运行它(ServiceConfiguration.Local.cscfg:Diagnostics.ConnectionString是“UseDevelopmentStorage = true”)
  6. 查看C:\Users\<Username>\AppData\Local\dftmp\Resources\<Instance GUID>\directory\WCFService.WebRole.svclog =&gt;什么也看不见!
  7. 本地存储博客中也没有任何内容(因为在移动到blob之前文件夹是空的,这并不奇怪)
  8. 我怎样才能使这个工作?我试图避免使用我自己的手写.txt日志来利用内置的跟踪侦听器框架(以及解析工具)。

    WebRole.cs

    using System.Diagnostics;
    
    namespace WCFService.WebRole
    {
        public class WebRole : RoleEntryPoint
        {
            public override bool OnStart()
            {
                // To enable the AzureLocalStorageTraceListner, uncomment relevent section in the web.config  
                DiagnosticMonitorConfiguration diagnosticConfig = DiagnosticMonitor.GetDefaultInitialConfiguration();
                diagnosticConfig.Directories.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);
                diagnosticConfig.Directories.DataSources.Add(AzureLocalStorageTraceListener.GetLogDirectory());
    
                string message = "Houston, tracing is broken!";
                Trace.TraceError(message);
                Trace.TraceInformation(message);
                Trace.TraceWarning(message);
                Trace.WriteLine(message);
    
                return base.OnStart();
            }
        }
    }
    

    Web.Config

    我使用了标准模板,但未注释顶部(必须合并两个system.diagnostic部分以避免HTTP 500)

      <system.diagnostics>     
        <sharedListeners>
          <add name="AzureLocalStorage" type="WCFService.WebRole.AzureLocalStorageTraceListener, WCFService.WebRole" />
        </sharedListeners>
        <!--<sources>
          <source name="System.ServiceModel" switchValue="Verbose, ActivityTracing">
            <listeners>
              <add name="AzureLocalStorage"/>
            </listeners>
          </source>
          <source name="System.ServiceModel.MessageLogging" switchValue="Verbose">
            <listeners>
              <add name="AzureLocalStorage"/>
            </listeners>
          </source>
        </sources>-->
        <trace autoflush="true">
          <listeners>
            <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
              name="AzureDiagnostics">
              <filter type="" />
            </add>
          </listeners>
        </trace>
      </system.diagnostics>
      <system.web>
        <compilation debug="true" targetFramework="4.0" />
      </system.web>
    

0 个答案:

没有答案