EventProvider ActivityId в контексте вызова с использованием AppFabric - PullRequest
1 голос
/ 24 марта 2012

Я использую EventProvider для записи событий, которые в конечном итоге записываются в Appfabric. Как правило, он следует реализации EventProvider, указанной здесь .

Я использую это с помощью в службе WCF. Служба вызывает другие методы асинхронно, поэтому логика службы работает в нескольких потоках. Как я понимаю, E2EActivityId событий использует Trace.CorrelationManager.ActivityId, который хранится в TLS потока. Я попытался установить метод EventProvider.SetActivityId (ref ..) перед выполнением вызова для записи события, но это не сработало.

Так что я не могу сгруппировать все события из одного контекста операции WCF.

Есть ли способ группировать звонки?

1 Ответ

0 голосов
/ 12 февраля 2013

У меня была такая же проблема.Я решил это, добавив новый атрибут с именем activityTracing = "true" к элементу endToEndTracing .Я использую AppFabric 1.1 на Windows Server 2012, .net 4.5.

Короче говоря, я публикую свою конфигурацию здесь

     <!-- AppFabric Config -->
  <system.serviceModel>
    <diagnostics etwProviderId="830b12d1-bb5b-4887-aa3f-ab508fd4c8ba">
      <endToEndTracing propagateActivity="true" activityTracing="true" messageFlowTracing="true" />
    </diagnostics>
    <behaviors>
      <serviceBehaviors>
        <behavior name="">
          <etwTracking profileName="EndToEndMonitoring Tracking Profile" />
          <serviceMetadata httpGetEnabled="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
  <microsoft.applicationServer>
    <monitoring>
      <default enabled="true" connectionStringName="ApplicationServerMonitoringConnectionString" monitoringLevel="EndToEndMonitoring" />
    </monitoring>
  </microsoft.applicationServer>
...