.NET traçage de ne pas travailler avec des Diagnostics.TraceSource, seuls les Diagnostics.Trace

Je suis en train de configurer .NET de traçage. Je suis en mesure d'obtenir de base de traçage via le Système.Diagnostics.Trace, mais compliqué pour les raisons que j'ai pour activer le traçage via le Système.Diagnostics.TraceSource objets (la nouvelle façon de faire, depuis .NET 2.0) plutôt que d'utiliser le Système.Diagnostics.Trace. J'ai tout essayé mais il ne veut tout simplement pas de travail à l'aide de TraceSource. Je suis d'effectuer le traçage dans un ASP.NET code-behind (aspx.cs)

Voici quelques Url:

http://msdn.microsoft.com/en-us/library/ty48b824.aspx
http://msdn.microsoft.com/en-us/library/64yxa344.aspx
http://msdn.microsoft.com/en-us/library/sk36c28t.aspx
http://blogs.msdn.com/b/bclteam/archive/2005/03/15/396431.aspx
http://msdn.microsoft.com/en-us/library/b0ectfxd%28v=VS.100%29.aspx

Actuellement, sur la base de ce qui est dans le web.config, il convient de traçage à la fois dans un fichier et à la page, à partir de ce code:

TraceSource ts = new TraceSource("mysource", SourceLevels.All);
Trace.Write("Trace (old way)"); //this one works
ts.TraceInformation("Trace (new way)"); //this one doesn't work
ts.Flush();
ts.Close();

Voici le web.config sections qui sont pertinentes:

 <system.diagnostics>
       <trace autoflush="false">
            <listeners> <!-- these listeners activate the "old way" of tracing. -->
                 <add       name="pagelistener" />
                 <add       name="filelistener" />
            </listeners>
       </trace>

       <sources>
            <source name="mysource" switchName="myswitch">
                 <listeners>  <!-- these listeners activate the "new way" -->
                       <add name="pagelistener" />
                       <add name="filelistener" />
                 </listeners>
            </source>
       </sources>


       <sharedListeners> 
            <!-- these are the actual trace listeners -->
            <add
                  name="filelistener"
                 type="System.Diagnostics.TextWriterTraceListener"
                 initializeData="loplog.txt"
                 />
            <add
                 name="pagelistener"
                 traceOutputOptions="none"
                 type="System.Web.WebPageTraceListener, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                 />
       </sharedListeners>

       <switches>
            <!-- the sources above use this verbose switch -->
            <add name="myswitch" value="Verbose"/>
       </switches>

 </system.diagnostics>
 <system.codedom>
       <!-- this compilers section should not be needed because I added
                 #define TRACE to the .aspx.cs file, however I put this in
                 since it's still not working. -->

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

 <system.web>
       <!-- this trace tag should be redundant because I added trace="true" to the aspx file,
                 but I put it in here anyway because this wasn't working. -->
       <trace writeToDiagnosticsTrace="true" enabled="true" pageOutput="true" requestLimit="50" localOnly="true"/>
Dans mon ASP.NET service web (ASMX) j'ai eu exactement le même problème. Dans mon cas, j'ai ajouté #define TRACE en haut de mon ASMX code-behind, et puis il a travaillé. Je vois que vous essayez de définir l'indicateur de TRACE, donc je ne suis pas sûr de ce qui se passe.

OriginalL'auteur eeeeaaii | 2010-09-29