4

我知道类似的问题可能已经被问过很多次,但我想代表我所看到的行为,并寻找是否有人可以帮助预测造成这种情况的原因。

我正在编写一个通过 TCP 连接到其他 Windows 服务的 Windows 服务。这有 100 个用户实体,每个用户实体有 5 个连接。这些用户使用他们各自的连接来执行他们的任务。

应用程序会继续运行 1 或 2 天。或者有时在开始后立即显示问题(-很少)。我最好的一次跑步是 4 到 5 天,没有出现这个异常。在那个应用程序死了或者我因为各种原因不得不停止它之后。

我想知道是什么原因造成的?这是堆栈跟踪。

System.IO.IOException: Unable to write data to the transport connection: An established connection was aborted by the software in your host machine. ---> System.Net.Sockets.SocketException: An established connection was aborted by the software in your host machine at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) --- End of inner exception stack trace --- at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) at System.Net.Security._SslStream.StartWriting(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security._SslStream.ProcessWrite(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.Write(Byte[] buffer, Int32 offset, Int32 count)

4

1 回答 1

3

你找到解决方案了吗?如果您将网络跟踪添加到您的 app.config,也许您可​​以更接近解决方案?

<?xml version="1.0"?>
<configuration>
    <system.diagnostics>
        <sources>
            <source name="System.Net.Sockets">
                <listeners>
                    <add name="Sockets"/>
                </listeners>
            </source>
        </sources>
        <switches>
            <add name="System.Net.Sockets" value="31"/>
        </switches>
        <sharedListeners>
            <add name="Sockets" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:\socketdump.log"/>
        </sharedListeners>
        <trace autoflush="true"/>
    </system.diagnostics>
</configuration>

此外,也许您可​​以为 TLS/SSL 设置日志记录。添加以下 DWORD 并将其设置为 7,到您的注册表,重新启动并观察系统事件日志中的所有 schannel 事件:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\EventLogging

希望有所帮助,但我想这可能是在黑暗中打了很多拳...

于 2011-10-09T00:43:16.850 回答