我 正在 尝试 持续 监听 服务 器 的 连接 , 这样 只要 服务 器 可用 , 客户 端 就会 建立 连接 。
代码 示例 如下 :
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 客户 端 对象 , 在 这种 情况 下 , 它 可以 正常 工作 。 * *
我 想 了解 这种 行为 。 请 意识 到 我 是 套接 字 编程 的 新手 。
1条答案
按热度按时间zkure5ic1#
如果Azure Function侦听服务总线队列,您可能需要清理并重新构建Azure Function项目。我确实浪费了一个多小时来了解这一点。我当时正在调试项目,并在中间关闭了应用程序。