相关疑难解决方法(0)

Alchemy-Websockets - WebSocketClient抛出NullReferenceException

我有两个C#程序应该通过WebSockets进行通信,服务器工作正常(也使用Alchemy)并且已经有一段时间了(使用javascript客户端).但是,连接Alchemy会WebSocketClient导致NullReferenceException客户端被抛出.

经过一些调试后,我发现WebSocketClient.cs因为_context.Connection.Connected调用而在第187行抛出异常._context.Connection是与本地相同的实例,_client并且在那个时间点都不为null.在TcpClient.Connectedmsdn.microsoft.com 上的页面上没有列出可能的异常(指示我不应该抛出任何异常).

回过头来,我注意到_client类变量在第176行WebSocketClient.cs从正常查看实例更改为填充异常的实例:

前行176 第176行之前

线路后176 第176行之后

在这一行之后Context,刚刚在第187行添加的Dispose()方法被称为断开连接Connection(这与_client我之前在第131行上提到的实例相同)Context.cs.

我的问题是:为什么会发生这种情况,如何阻止它发生并成功连接到所需的WebSocketServer?

如果您需要更多信息,请在评论中随时与我联系.

编辑1

例外情况仅在服务器实际侦听时发生,如果服务器处于非活动状态,WebSocketClient.cs则未到达第176行(这是正确的行为,因为OnRunClient()在建立与服务器的连接时会调用该行为).

编辑2

根据要求StackTrace:

System.NullReferenceException was unhandled
  HResult=-2147467261
  Message=Object reference not set to an instance of an object.
  Source=System
  StackTrace:
       at System.Net.Sockets.TcpClient.get_Connected()
       at Alchemy.WebSocketClient.SetupContext(Context context) in C:\...\Alchemy\WebSocketClient.cs:regel 187
       at Alchemy.WebSocketClient.HandleClientThread() in C:\...\Alchemy\WebSocketClient.cs:regel 94
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, …
Run Code Online (Sandbox Code Playgroud)

c# websocket

6
推荐指数
1
解决办法
1828
查看次数

标签 统计

c# ×1

websocket ×1