Существует ли способ сделать по требованию сбрасывание трассировки WCF?

пакетная программа, названная call.cmd;

call.cmd

******  B A T C H   R E C U R S I O N  exceeds STACK limits ******
Recursion Count=1240, Stack Usage=90 percent
******       B A T C H   PROCESSING IS   A B O R T E D      ******
вызова
9
задан Charles 8 January 2012 в 15:40
поделиться

2 ответа

Я нашел ответ в стандартной документации ( последний черновик ). Надеюсь, я попытаюсь объяснить, что я понял.

Во-первых, если класс определяет конструктор списка инициализации, он используется всякий раз, когда это подходит:

§ 8.5.4 (стр. 203)

Список инициализаторов конструкторы предпочтение перед другими конструкторами в list-initialization (13.3.1.7).

Я думаю, что это отличная возможность, устраняющая головную боль, связанную с неоднородным стилем :)

В любом случае, единственная ошибка (которая мой вопрос о) заключается в том, что если вы создаете класс без конструктора инициализатора, а затем добавляете его позже, вы можете получить удивительный результат.

В принципе, представьте, что std :: vector не имеет инициализатора list, то следующий конструктор создаст вектор с 10 элементами:

std::vector<int> numbers{10};

Добавив конструктор списка инициализатора, компилятор предпочтет его другому конструктору из-за синтаксиса {} . Такое поведение происходит из-за того, что элементы списка инициализации {10} принимаются с помощью конструктора списка инициализации. Если нет приемлемого преобразования,

2
ответ дан 4 December 2019 в 07:14
поделиться

Установка autoflush = "true" в файле .config гарантирует, что источники трассировки сбрасываются на диск после каждой трассировки.

Ниже приведен пример файла конфигурации с autoflush = "true" :

<configuration>
 <system.diagnostics>
  <sources>
   <source name="System.ServiceModel" switchValue="Warning, ActivityTracing"
                 propagateActivity="true">
     <listeners>
      <add name="xml" type="System.Diagnostics.XmlWriterTraceListener"
                      initializeData="e2eTraceTest.xml" />
    </listeners>
   </source>
  </sources>

  <trace autoflush="true" />

 </system.diagnostics>
</configuration>

Кроме того, если вы случайно хотите сохранить свою трассировку WCF в базе данных, вы можете проверить этот пост:

Это позволит вам просматривать трассировку WCF в реальном времени, не сбрасывая ее.

29
ответ дан 4 December 2019 в 07:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: