首页 文章

Azure角色(WCF服务)不记录跟踪信息

提问于
浏览
1

我正在托管一组工作者角色的WCF服务,我正在部署到Azure . 问题是标准跟踪日志记录未显示在Azure存储表中 .

在代码中 - 我正在使用

Trace.TraceInformation("Something")

在.csdef我有默认值

<Imports>
    <Import moduleName="Diagnostics" />
</Imports>

在.csfg我有

<ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="CONNECTION_STRING_THAT_WORKS_FOR_OTHER_ROLE" />
  </ConfigurationSettings>

在wadcfg中,我得到了

<Logs bufferQuotaInMB="1024" scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Verbose" />

此设置适用于我正在部署的辅助角色,它可以很好地记录在WADLogsTable中 . 但这个不是 . 有什么指针吗?

2 回答

  • 0

    我们稍后通过修改Azure项目而不是基础webrole解决了这个问题:

    1 - 将webrole.cs文件添加到项目中,其中包含以下内容:

    public class WebRole : RoleEntryPoint
    {
        public override bool OnStart()
        {    
            return base.OnStart();
        }
    }
    

    2 - 这是同一个项目的app.config:

    <system.diagnostics>
        <trace>
          <listeners>
            <add name="AzureDiagnostics" type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
              <filter type="" />
            </add>
          </listeners>
        </trace>
      </system.diagnostics>
    

    这为我们解决了

  • 0

    你是如何设置DiagnosticMonitorTraceListener的,以及你在哪个进程中进行Trace.TraceInformation调用?我通常在app.config中看到DiagnosticMonitorTraceListener中的这个,但Trace.TraceInformation调用正在其他一些进程中发生 . 您必须在.config文件中(或通过TraceListeners.Add代码中)设置DiagnosticMonitorTraceListener,以用于进行Trace.TraceInformation调用的进程 . 如果这不能解决问题,那么我通常会采取三种方法来解决此问题:

相关问题