How to get detailed connection logging info in .NET
Sometimes when you connect to an external host and you get for example the error “The request was aborted: Could not create SSL/TLS secure channel”, you want to have more detailed info about what causes the error.
.NET has a build in diagnostics meganism that will give you more detailed info. The following have to be added to de web.config:
1: <configuration>2:
3: <system.diagnostics>4: <trace autoflush="true" />5: <sources>6: <source name="System.Net" maxdatasize="1024">7: <listeners>8: <add name="MyTraceFile"/>9: </listeners>10: </source>11: <source name="System.Net.Sockets" maxdatasize="1024">12: <listeners>13: <add name="MyTraceFile"/>14: </listeners>15: </source>16: <source name="System.Net.HttpListener">17: <listeners>18: <add name="MyTraceFile"/>19: </listeners>20: </source>21: <source name="System.Net.Cache">22: <listeners>23: <add name="MyTraceFile"/>24: </listeners>25: </source>26: </sources>27:
28: <sharedListeners>29: <add30: name="MyTraceFile"31: type="System.Diagnostics.TextWriterTraceListener"32: initializeData="System.Net.trace.log"33: />34: </sharedListeners>35: <switches>36: <add name="System.Net" value="Verbose" />37: <add name="System.Net.Sockets" value="Verbose" />38: </switches>39: </system.diagnostics>40:
41: </configuration>
The detailed log info will be written to a file “System.Net.trace.log” in the root of your web application. In the log you will find info like for example this:
System.Net Information: 0 : [1796] SecureChannel#53793566 - Certificate is of type X509Certificate2 and contains the private key. System.Net Information: 0 : [1796] AcquireCredentialsHandle(package = Microsoft Unified Security Protocol Provider, intent = Outbound, scc = System.Net.SecureCredential) System.Net Error: 0 : [1796] AcquireCredentialsHandle() failed with error 0X8009030D. System.Net Information: 0 : [1796] AcquireCredentialsHandle(package = Microsoft Unified Security Protocol Provider, intent = Outbound, scc = System.Net.SecureCredential) System.Net Error: 0 : [1796] AcquireCredentialsHandle() failed with error 0X8009030D. System.Net.Sockets Verbose: 0 : [1796] Socket#17610470::Dispose() System.Net Error: 0 : [1796] Exception in the HttpWebRequest#30822392:: - The request was aborted: Could not create SSL/TLS secure channel. System.Net Error: 0 : [1796] Exception in the HttpWebRequest#30822392::EndGetResponse - The request was aborted: Could not create SSL/TLS secure channel. System.Net.Sockets Verbose: 0 : [4632] Socket#24383397::Dispose()
More info about system.diagnostics you will find here.