.net WebSocketClient的类别ConnectAsync掷回错误“无法存取已处置的对象ClientWebSocket '”,

4xrmg8kj  于 2022-11-11  发布在  .NET
关注(0)|答案(1)|浏览(127)

我 正在 尝试 持续 监听 服务 器 的 连接 , 这样 只要 服务 器 可用 , 客户 端 就会 建立 连接 。
代码 示例 如下 :

internal async Task ConnectAsync()
{
    try
    {
        if (myWebSocketClient.State != WebSocketState.Open)
        {
            myWebSocketClient.ConnectAsync(InitUri(), CancellationToken.None).Wait(myCancellationToken);
            OnConnectionChange(true, aNumberOfConnectionTries);
        }
    }
    catch (Exception aException)
    {
        Console.WriteLine("An error occured while connecting to server {0}", aException);
        OnConnectionChange(false, aNumberOfConnectionTries);
        aNumberOfConnectionTries++;
        await ConnectAsync();
    }
}

中 的 每 一 个
我 第 一 次 收到 错误 " 无法 连接 到 远程 服务 器 " , 这 是 因为 服务 器 不可 用 。 但 从 下 一 次 收到 错误 " 无法 访问 已 释放 的 对象 " 开始 。 \ r \ n 对象 名称 :" 系统 . 网络 . 网络 套接 字 . 客户 端 网络 套接 字 " 。 "
我 了解 错误 , 但 不 了解 为什么 客户 端 对象 被 释放 。 客户 端 对象 是否 仅 对 一 个 连接 请求 有效 ?

    • 我 曾 尝试 在 connect 方法 内 创建 一 个 新 的 websocket 客户 端 对象 , 在 这种 情况 下 , 它 可以 正常 工作 。 * *

我 想 了解 这种 行为 。 请 意识 到 我 是 套接 字 编程 的 新手 。

zkure5ic

zkure5ic1#

如果Azure Function侦听服务总线队列,您可能需要清理并重新构建Azure Function项目。我确实浪费了一个多小时来了解这一点。我当时正在调试项目,并在中间关闭了应用程序。

相关问题