Как стать автором
Обновить

Комментарии 8

Логи писать надо в логгер, а его уже настроить, чтобы писал в консоль или куда нам удобней. Прибивать код к выводу в консоль плохая идея.

Не знаю где писали про WCF как решение для высоконагруженных систем, но это точно не так.

Очень высокие накладные расходы, посему гораздо выгодней передавать один массив с 1000 элементов чем сделать 1000 запросов.

В современном мире гораздо лучше взять gRPC через именованные каналы или unix файлы чем бороться с проблемами WCF, а их больше чем кажется.

К примеру нельзя передавать строку которая не может быть конвертирована в валидную UTF-8 строку.

Если все listener-ы, которые вы используете потокобезопасные, добавьте к себе в app.config:
    <system.diagnostics>
      <trace useGlobalLock="false" />
    </system.diagnostics>


У нас работает много лет и трафик там иногда тысячи событий в секунду на машинах с десятками ядер.
Это если вам надо проблему решить, а не архитектурно что-то менять =)

Интересно, а почему эта проблема проявилась только у одного конкретного пользователя?

Проблема бы не возникла, если бы все потоки получали доступ к заблокированной секции в том порядке, в котором запрашивали доступ. Но это не так для примитивов синхронизации Windows
Скрытый текст
If more than one thread is waiting on a mutex, a waiting thread is selected. Do not assume a first-in, first-out (FIFO) order

Видимо, только с ростом числа потоков возникает ситуация, когда один из потоков никогда не получает доступ, пока очередь не пустая.
Давайте зайдем на ReferenceSource и посмотрим исходный код метода TraceEvent.
Ссылка ведёт на главную, а не на интересующий нас класс.
WCF уже пора на покой…
В Vista был целый букет этих 'foundations': WCF, WPF, WIF, WWF… Сейчас все они выглядят тяжеловато и просятся на замену.
ох я тоже в свое время напарывался на это. если я правильно помню, у нас было сконфигурироание логирование в файл (это можно сделать в конфиге), и получалось что приложение из-за этого станавилось практически одно поточным, так как все потоки ждали лока под которым писалось в файл.

вообще МС рекомендует этот механизм для высокопроизводительного трейсинга, странно было получить такое «оправдание» от них.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий