Trace på WCF-tjänst, loggning (SSL- och TLS-fel eller när man saknar loggning)

Share on:

Man kan lägga en trace på de olika dll:erna som skriver ner dess loggdata. Får man konstiga fel vid kommunikation till eller från WCF-tjänst t ex så kan man ofta här hitta orsaken, när felen inte dyker upp i felloggen från början.

Här behövs nog bara loggning på System.Net The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework SDK documentation and inspect the server trace logs.

Kan läsas med C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\SvcTraceViewer

 1<system.diagnostics>
 2    <sources>
 3      <source name="System.ServiceModel"
 4              switchValue="Information, ActivityTracing"
 5              propagateActivity="true" >
 6        <listeners>
 7          <add name="System.Net"/>
 8        </listeners>
 9      </source>
10      <source name="System.ServiceModel.MessageLogging">
11        <listeners>
12          <add name="System.Net"/>
13        </listeners>
14      </source>
15      <source name="myUserTraceSource"
16              switchValue="Information, ActivityTracing">
17        <listeners>
18          <add name="System.Net"/>
19        </listeners>
20      </source>
21    </sources>
22    <sharedListeners>
23            <add
24              name="System.Net"
25              type="System.Diagnostics.XmlWriterTraceListener"
26              initializeData="C:\Temp\System.Net.trace4.log"
27            />
28    </sharedListeners>
29  
30    <trace autoflush="true" />
31  </system.diagnostics>

Vid fel i kommunikation med extern webbtjänst, t ex Cannot establish secure channel for SSL/TLS with authority. System.ServiceModel.Security.SecurityNegotiationException. Could not create SSL/TLS secure channel.

Lägg följande i <configuration>. OBS: generar a boat-load of data.

 1<system.diagnostics>
 2      <sources>
 3         <source name="System.Net" tracemode="includehex">
 4            <listeners>
 5               <add name="ExternalSourceTrace"/>
 6            </listeners>
 7         </source>
 8         <source name="System.Net.Sockets">
 9            <listeners>
10               <add name="ExternalSourceTrace"/>
11            </listeners>
12         </source>
13         <source name="System.Net.Cache">
14            <listeners>
15               <add name="ExternalSourceTrace"/>
16            </listeners>
17         </source>
18         <source name="System.Net.Security">
19            <listeners>
20               <add name="ExternalSourceTrace"/>
21            </listeners>
22         </source>
23         <source name="System.Security">
24            <listeners>
25               <add name="ExternalSourceTrace"/>
26            </listeners>
27         </source>
28      </sources>
29      <switches>
30         <add name="System.Net" value="Verbose"/>
31         <add name="System.Net.Sockets" value="Verbose"/>
32         <add name="System.Net.Cache" value="Verbose"/>
33         <add name="System.Security" value="Verbose"/>
34         <add name="System.Net.Security" value="Verbose"/>
35      </switches>
36      <sharedListeners>
37         <add name="ExternalSourceTrace"
38                 type="System.Diagnostics.TextWriterTraceListener"
39                 initializeData="network.log"
40      />
41      </sharedListeners>
42     <trace autoflush="true"/>
43   </system.diagnostics>