Можно ли включить отслеживание в OWIN?

У меня есть экологическая проблема где-то в OWIN, и я хочу получить некоторую информацию о том, что происходит. Я прочитал, что могу включить трассировку, но не могу найти много информации о том, как это сделать.

Я добавил следующее в мой web.config, но не радость. Возможно ли это?

<!-- 1. Enable the switch here. Without this, you get nothing. By default, Katana has "new SourceSwitch("Microsoft.Owin")" at the root level. -->
<switches>
  <add name="Microsoft.Owin" value="Verbose" />
</switches>

<!-- 2. Add your shared listeners. -->
<trace autoflush="true" />
<sharedListeners>
  <add name="file" type="System.Diagnostics.TextWriterTraceListener" initializeData="C:\traces\Microsoft.OWIN.trace.log" />
  <add name="console" type="System.Diagnostics.ConsoleTraceListener" />
</sharedListeners>

<sources>
  <!-- "Microsoft.Owin" is the SourceSwitch name katana is using at the rootlevel. By enabling this, we are enabling all sub level traces by the components (if we don't change the default trace settings). -->
  <source name="Microsoft.Owin">
    <listeners>
      <add name="file" />
      <add name="console" />
    </listeners>
  </source>
</sources>

Ответ 1

Не 100% уверены, что это решит вашу проблему, но мы получили ее работу со следующей конфигурацией. Небольшая разница в следующей строке:

<source name="Microsoft.Owin" switchName="Microsoft.Owin" switchType="System.Diagnostics.SourceSwitch">

Обратите внимание, что тег <source> содержит атрибут switchNameswitchType), отсутствующий в вашем примере. Я думаю, что эта инструкция связывает TraceSource с коммутатором и делает всю работу.

В нашем случае мы используем прослушиватели трассировки для веб-сайтов Azure (и веб-заданий).

 <system.diagnostics>
    <sharedListeners>
      <add name="AzureTableTraceListener" type="Microsoft.WindowsAzure.WebSites.Diagnostics.AzureTableTraceListener, Microsoft.WindowsAzure.WebSites.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      <add name="AzureBlobTraceListener" type="Microsoft.WindowsAzure.WebSites.Diagnostics.AzureBlobTraceListener, Microsoft.WindowsAzure.WebSites.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      <add name="AzureDriveTraceListener" type="Microsoft.WindowsAzure.WebSites.Diagnostics.AzureDriveTraceListener, Microsoft.WindowsAzure.WebSites.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </sharedListeners>
    <sources>
      <source name="Microsoft.Owin" switchName="Microsoft.Owin" switchType="System.Diagnostics.SourceSwitch">
        <listeners>
          <add name="AzureTableTraceListener"/>
          <add name="AzureDriveTraceListener"/>
        </listeners>
      </source>
    </sources>
    <switches>
      <add name="Microsoft.Owin" value="All" />
    </switches>
    <trace autoflush="true" indentsize="4" />
  </system.diagnostics>