Tracesource и ASP.NET: работает для веб -приложений, а не на веб -сайтах

StackOverflow https://stackoverflow.com/questions/5342210

Вопрос

Я добавляю функциональность отслеживания на веб -сайт ASP.NET, поэтому я решил расследовать Tracesource создав пару прототипов; Проект веб -приложения и проект веб -сайта.

Я использую аналогичный web.config для каждого проекта для регистрации трассов в журнале событий Windows:

<configuration>
    <system.web>
        <compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
    </system.web>    
    <system.diagnostics>
        <trace autoflush="true" />
        <sources>
            <source name="HelloWorld">
                <listeners>
                    <add name="eventlogListener" />
                </listeners>
            </source>
        </sources>    
        <sharedListeners>
            <add name="eventlogListener" type="System.Diagnostics.EventLogTraceListener" initializeData="My Source" />
        </sharedListeners>
    </system.diagnostics>
</configuration>

Я просто начинаю со следующего базового следа:

private static TraceSource _ts = new TraceSource("HelloWorld", SourceLevels.All);

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);

    _ts.TraceEvent(TraceEventType.Information, 10, "Greetings from OnLoad.");
}

С помощью проекта веб -приложения я вижу трассировку, созданную в журнале событий. Однако с помощью проекта веб -сайта я не могу.

Требуются ли дополнительные шаги (например: настройки Web.Config, разрешения и т. Д.) Для проектов веб -сайта для использования Tracesource?

Это было полезно?

Решение 2

После некоторой проб и ошибок, по -видимому, в Интернете требуется узел Codem Compilers, но я не совсем уверен, почему.

Другие советы

Причина этого заключается в том, что методы трассировки составляются .NET только в том случае, если константа трассировки определяется как часть компиляции. В проекте веб -сайта способ сделать это состоит в том, чтобы включить конфигурацию компилятора в ваш файл web.config, например:

  <system.codedom>
    <compilers>
      <compiler
         language="c#;cs;csharp"
         extension=".cs"
         type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.50727.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
         compilerOptions="/d:TRACE"
         warningLevel="1" />
    </compilers>
  </system.codedom>

Обратите внимание на опцию компилятора «/D: Trace», которая позволяет константу трассировки при составлении вашего кода (C# в этом примере).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top