Asterisk 我该如何预防或捕获;无法运行:套接字为空";来自AsterNet?

Asterisk 我该如何预防或捕获;无法运行:套接字为空";来自AsterNet?,asterisk,asteriskami,asternet,Asterisk,Asteriskami,Asternet,使用AsterNet连接到Asterisk,我看到了以下内容: Unhandled Exception: System.SystemException: Unable to run: socket is null. at AsterNET.Manager.ManagerReader.Run() in e:\Projects\Github\AsterNET\Asterisk.2013\Asterisk.NET\Manager\ManagerReader.cs:line 197 at System

使用AsterNet连接到Asterisk,我看到了以下内容:

Unhandled Exception:

System.SystemException: Unable to run: socket is null.
at AsterNET.Manager.ManagerReader.Run() in
e:\Projects\Github\AsterNET\Asterisk.2013\Asterisk.NET\Manager\ManagerReader.cs:line 197
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback,
Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state,
Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
您可以在ManagerReader.cs的AsterNet代码中看到引发此异常的行,第197行。当connect()(在ManagerConnection.cs中)启动一个新线程时,似乎会发生这种情况,但在ManagerReader.cs中mrSocket不知何故为空。但是这个异常是从新线程抛出的,所以我无法捕获它并处理错误。它只是使我的应用程序崩溃


所以我有两个问题。首先,我如何防止这种情况发生?我连接或重新连接的方式是否有问题?第二,是否有可能以某种方式捕捉到这一点并再次尝试连接?

之所以发生这种情况,是因为我自己试图维护连接,而我不必这样做。我编写了一个循环,每隔一段时间检查一次连接,如果连接断开,就重新连接,并发送ping以保持连接的活力。你可以看到我在这里做的一个例子:

但我不需要这么做。AsterNet的当前版本为您提供了所有这些功能。当我也尝试手动操作时,它干扰了库所采取的步骤。所以底线是,让AsterNet库为您维护连接

您可以在这里看到我与维护人员的讨论:


之所以发生这种情况,是因为我自己试图维护连接,而我不必这样做。我编写了一个循环,每隔一段时间检查一次连接,如果连接断开,就重新连接,并发送ping以保持连接的活力。你可以看到我在这里做的一个例子:

但我不需要这么做。AsterNet的当前版本为您提供了所有这些功能。当我也尝试手动操作时,它干扰了库所采取的步骤。所以底线是,让AsterNet库为您维护连接

您可以在这里看到我与维护人员的讨论:


如果不共享您的登录代码和引发此异常的实际代码示例,除了将您链接到AsterNet源代码之外,很难给出任何答案。如果其他人好奇:如果不共享您的登录代码和引发此异常的实际代码示例,除了将您链接到AsterNet源代码之外,很难给出任何答案。如果其他人好奇: