Ведение журнала трассировки диагностики не работает при развертывании в IIS 7 - PullRequest
1 голос
/ 25 июня 2010

Я работаю над переносом сайта из IIS 6 в IIS 7 и не могу просмотреть все свои журналы. Моя конфигурация system.diagnostics выглядит следующим образом:

<system.diagnostics>
  <trace autoflush="true"></trace>
  <sources>
    <source name="Assembly1" switchValue="All">
      <listeners>
        <add name="DiagnosticMessageTraceListener"
             type="System.Diagnostics.TextWriterTraceListener"
             traceOutputOptions="ProcessId, ThreadId, DateTime"
             initializeData="E:\Inetpub\logs\App\Assembly1.log" />
      </listeners>
    </source>
    <source name="Assembly2" switchValue="All">
      <listeners>
        <add name="DiagnosticMessageTraceListener"
             type="System.Diagnostics.TextWriterTraceListener"
             traceOutputOptions="ProcessId, ThreadId, DateTime"
             initializeData="E:\Inetpub\logs\App\Assembly2.log" />
      </listeners>
    </source>
    <source name="Assebly3" switchValue="All">
      <listeners>
        <add name="DiagnosticMessageTraceListener"
             type="System.Diagnostics.TextWriterTraceListener"
             traceOutputOptions="ProcessId, ThreadId, DateTime"
             initializeData="E:\Inetpub\logs\App\Assembly3.log" />
      </listeners>
    </source>
    <source name="System.ServiceModel" switchValue="All" propagateActivity="true">
      <listeners>
        <add name="DiagnosticMessageTraceListener"
             type="System.Diagnostics.XmlWriterTraceListener"
             initializeData="E:\Inetpub\logs\App\ServiceTrace.svclog" />
      </listeners>
    </source>
    <source name="System.ServiceModel.MessageLogging" switchValue="All">
      <listeners>
        <add name="DiagnosticMessageTraceListener"
             type="System.Diagnostics.XmlWriterTraceListener"
             initializeData="E:\Inetpub\logs\App\ServiceMessages.svclog" />
      </listeners>
    </source>
  </sources>
  <switches>
    <add name="System.Net" value="Verbose" />
    <add name="System.Net.Sockets" value="Verbose" />
  </switches>
</system.diagnostics>

Если я запускаю приложение локально, используя веб-сервер ASP.Net или локальный IIS, я получаю все свои файлы журнала. После развертывания приложения на IIS 7 я получаю только журнал System.ServiceModel. Я проверил, что каталог существует, и я дал полный контроль над всеми. Я также перезапустил службы и сайт, пытаясь заставить журналы сбрасываться. Я только что пытался что-то вытащить из этой вещи, поэтому я также установил службы ролей Tracing and Logging Tools. Я все еще не получаю журналы приложений.

Я также попробовал реализацию, в которой я регистрировался в EventLog вместо файлов журнала трассировки. Это также демонстрирует такое же поведение. Работал локально и при развертывании на локальном IIS, но не при развертывании на реальном сервере. Я зарегистрировался в журнале приложений и на своем компьютере IIS7 я дал разрешение на полный доступ для HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ eventlog \ Application.

Похоже, мне здесь чего-то не хватает. Я не могу получить никакой информации из этих двух разных реализаций ведения журналов при развертывании в IIS 7. Я даже не уверен, что здесь общего. Оба EventLog.WriteEntry и Trace.TraceEvent используют WCF?

Ответы [ 2 ]

2 голосов
/ 03 июля 2010

Пусть у всех есть права полного доступа на E: \ Inetpub \ logs \ App \

О других проблемах с разрешениями, узнайте об изменениях IIS 7 в учетной записи пользователя,

http://learn.iis.net/page.aspx/110/changes-between-iis-60-and-iis-7-security/

0 голосов
/ 06 июля 2017

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

Попробуйте <initializeData="E:\logs\Apps\ServiceTrace.svclog" />

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...