在经典的.NET应用程序中,我通过在app.config中添加以下内容来完成此操作:
<system.diagnostics>
<sources>
<source name="System.Net" tracemode="includehex" maxdatasize="1024">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Cache">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Http">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Sockets">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.WebSockets">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
</sources>
<switches>
<add name="System.Net" value="Verbose"/>
<add name="System.Net.Cache" value="Verbose"/>
<add name="System.Net.Http" value="Verbose"/>
<add name="System.Net.Sockets" value="Verbose"/>
<add name="System.Net.WebSockets" value="Verbose"/>
</switches>
<sharedListeners>
<add name="System.Net" type="System.Diagnostics.TextWriterTraceListener" initializeData="network.log"/>
</sharedListeners>
<trace autoflush="true"/>
</system.diagnostics>
我可以在.NET Core控制台应用程序中实现相同的效果吗?特别是,我需要查看在使用NegotiateStream类进行NTLM身份验证期间调用哪些WinAPI函数(以及传递了哪些参数)。
到目前为止,我发现的主要是在ASP.NET核心应用程序中记录Web API。我的应用程序不是ASP.NET,也不使用任何Web API。
答案 0 :(得分:1)
对于新的 .NET 5,您可以尝试提到的技术 here,它使用 EventListener。
答案 1 :(得分:0)
在.NET Core中,与.NET框架相比,跟踪的工作原理有所不同。该框架通过etw(在Windows中)发出跟踪事件。要读取跟踪事件,您有两种选择: