Отслеживание всех вызовов (+ их стек) к службе WCF - PullRequest
4 голосов
/ 06 декабря 2011

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

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

Есть ли способ достичь этого, не прибегая к инструментам двоичных файлов.Есть ли уровень трассировки в узле system.diagnostic в web.config, который мы могли бы изменить?

Ответы [ 2 ]

6 голосов
/ 06 декабря 2011

Вы настроили трассировку в своем файле конфигурации? Это хорошая статья на эту тему.

Вот пример конфигурации, которую вы можете использовать и изменять для своих нужд:

<system.diagnostics>
    <trace autoflush="true" />
    <sources>
        <source name="System.ServiceModel"
                switchValue="Information, ActivityTracing"
                propagateActivity="true">
            <listeners>
                <add name="ServiceModel"
                     type="System.Diagnostics.XmlWriterTraceListener"
                     initializeData="C:\ServiceModel.svclog" />
            </listeners>
        </source>
        <source name="System.ServiceModel.MessageLogging">
            <listeners>
                <add name="MessageLogging"
                     type="System.Diagnostics.XmlWriterTraceListener"
                     initializeData="C:\MessageLogging.svclog" />
            </listeners>
        </source>
    </sources>
</system.diagnostics>

<system.serviceModel>
    <diagnostics>
        <messageLogging logEntireMessage="True"
                        logMalformedMessages="False"
                        logMessagesAtServiceLevel="True"
                        logMessagesAtTransportLevel="False"
                        maxMessagesToLog="10000"
                        maxSizeOfMessageToLog="10000" />
    </diagnostics>
</system.serviceModel>

Использование службы Trace Viewer Tool (SvcTraceViewer.exe) для просмотра полученных журналов.

2 голосов
/ 06 декабря 2011

Проверка Отслеживание WCF , а также дополнительно Регистрация сообщений WCF и использование SvcTraceViewer для проверки собранных данных - например, вы можете создать свой слушатель трассировки для регистрации трассировокв базу данных.WCF также предоставляет счетчиков производительности .

...