Режим диагностики (сетевой уровень) .NET приложений

Материал из TK
Перейти к: навигация, поиск

Данный режим предназначен для низкоуровневого журналирования передаваемых/принимаемых данных .NET приложений по протоколу TCP/UDP. Существует два режима диагностики сетевых .NET-приложений. Как правило данный режим используется только в случае каких-либо неполадок при работе приложений с сетью - например неработоспособность с прокси-серверами или фаерволами.

WCF - Windows Communication Foundation

В настоящее время по этому протоколу из ПО компании Техноком может работать только AutoGRAPH.NET Service. Для включения данного режима необходимо в .config файл приложения (он называется .exe.config) добавить следующую секцию:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <system.diagnostics>
 <sources>
 <source name="System.ServiceModel" 
 switchValue="Information, ActivityTracing" 
 propagateActivity="true" >
 <listeners>
 <add name="xml"/>
 </listeners>
 </source>
 <source name="System.ServiceModel.MessageLogging">
 <listeners>
 <add name="xml"/>
 </listeners>
 </source>
 <source name="myUserTraceSource" 
 switchValue="Information, ActivityTracing">
 <listeners>
 <add name="xml"/>
 </listeners>
 </source>
 </sources>
 <sharedListeners>
 <add name="xml" 
 type="System.Diagnostics.XmlWriterTraceListener" 
 initializeData="C:\Error.svclog" />
 </sharedListeners>
 </system.diagnostics>
</configuration>

Весь трафик, который принимает/передает приложение обработчиками WCF будет записан в C:\Error.svclog. После добавления секции в конфигурационный файл необходимо перезапустить приложение, повторить действия, которые приводят к ошибке и открыть данный файл с помощью специальной утилиты SvcTraceViewer.exe, которая находится в районе C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin. Если данный этап вызывает затруднения - лучше всего отправить данный файл по электронной почте на support@tk-chel.ru для анализа нашими специалистами.

Сетевой уровень .NET приложений

Данный режим диагностики можно использовать для всех .NET-приложений, которые работают с сетью. Для включения данного режима необходимо в .config файл приложения (он называется .exe.config) добавить следующую секцию:

 <system.diagnostics>
 <sources>
 <source name="System.Net" tracemode="includehex" maxdatasize="1024">
 <listeners>
 <add name="System.Net"/>
 </listeners>
 </source>
 <source name="System.Net.Cache">
 <listeners>
 <add name="System.Net"/>
 </listeners>
 </source>
 <source name="System.Net.Http">
 <listeners>
 <add name="System.Net "/>
 </listeners>
 </source>
 <source name="System.Net.Sockets">
 <listeners>
 <add name="System.Net"/>
 </listeners>
 </source>
 <source name="System.Net.WebSockets">
 <listeners>
 <add name="System.Net"/>
 </listeners>
 </source>
 </sources>
 <switches>
 <add name="System.Net" value="Verbose"/>
 <add name="System.Net.Cache" value="Verbose"/>
 <add name="System.Net.Http" value="Verbose"/>
 <add name="System.Net.Sockets" value="Verbose"/>
 <add name="System.Net.WebSockets" value="Verbose"/>
 </switches>
 <sharedListeners>
 <add name="System.Net"
 type="System.Diagnostics.TextWriterTraceListener"
 initializeData="C:\network.log"
 />
 </sharedListeners>
 <trace autoflush="true"/>
 </system.diagnostics>

Весь трафик, который принимает или передает приложение будет записан в C:\network.log. После добавления секции в конфигурационный файл необходимо перезапустить приложение, повторить действия, которые приводят к ошибке. После чего этот лог-файл можно открыть в любом текстовом редакторе и найти место, на котором произошла ошибка. Если данный этап вызывает затруднения - лучше всего отправить данный файл по электронной почте на support@tk-chel.ru для анализа нашими специалистами.