使用 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 的第 197 行的 AsterNet 代码中看到引发此异常的行。看起来当 connect()(在 ManagerConnection.cs 中)启动一个新线程时会发生这种情况,但在 ManagerReader.cs 中 mrSocket 不知何故为空. 但是这个异常是从那个新线程中抛出的,所以我无法捕获它并处理错误。它只是让我的应用程序崩溃。
所以我有两个问题。首先,如何防止这种情况发生?我在连接或重新连接的方式上做错了吗?其次,是否有可能以某种方式捕获它并再次尝试连接?