System.Net.NetworkInformation.Ping 崩溃

2023-12-21

我的网站拥有超过 600 台设备。我正在尝试使用标准 .NET ping 类对它们一一进行 ping 操作。由于某种原因,该线程正在崩溃 - 几天后它就停止响应。它所做的只是 ping 网络上的设备。我们使用的是 Microsoft Windows Server 2008 R2。 .NET ping 类有问题吗?我似乎也遇到了内存泄漏,我猜这是由于 ping 造成的。我应该只编写一个 win32 ping dll 来为我完成这项工作,还是我在 .NET 上做错了什么?

private void PingDevice(out bool state, string IP)
{
    PingReply pingReply;
    System.Net.NetworkInformation.Ping pingSender = null;
    state = false;
    try
    {
        pingSender = new System.Net.NetworkInformation.Ping();
        pingReply = pingSender.Send(IP, 4000);
        state = (pingReply.Status == IPStatus.Success); // comms is on/off
    }
    catch (Exception ex)
    {
        PingGlobals.driverThread.LogIt("$E Pinging Devices:" + ex.Message + ", " + IP);
    }
    finally
    {
        if (pingSender != null)
        {
            ((IDisposable)pingSender).Dispose();
        }
    }
}

在使用 Ping 的异步版本时,我发现有时 Ping 永远不会返回。我可以想象,如果这种情况发生在异步、同步上,它就会停止。我找到的 Async 的答案是设置一个超时(比 Ping 超时长),然后在 SendAsync 之前调用 SendAsyncCancel 重试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

System.Net.NetworkInformation.Ping 崩溃 的相关文章

  • 为什么通过派生类对基类的引用与 :: - 运算符不明确?

    所以我想知道为什么以下钻石问题的代码片段无法编译 我知道这个问题通常是通过虚拟继承来解决的 我不是故意使用它的 该代码只是为了展示我的问题 即为什么编译器称此不明确 因此 我在 struct Base 中声明了两个成员变量 因为这两个子类
  • Volatile.Read 和 Volatile.Write 背后的逻辑是什么?

    来自 MSDN Volatile Read 读取字段的值 在需要它的系统上 插入一个 阻止处理器重新排序内存的内存屏障 操作如下 如果在该方法之后出现读或写 代码 处理器无法移动它before这个方法 and Volatile Write
  • 如何使用 ASP.NET MVC 编辑多选列表?

    我想编辑一个如下所示的对象 我希望用 UsersGrossList 中的一个或多个用户填充 UsersSelectedList 使用 mvc 中的标准编辑视图 我只得到映射的字符串和布尔值 下面未显示 我在 google 上找到的许多示例都
  • 元组在 VS2012 中如何工作?

    Visual Studio 2012 功能 tuples但不是可变参数模板 这是如何完成的 如何在不使用可变模板的情况下实现元组 简而言之 微软做了与之前在 NET 中实现类似元组的数据类型完全相同的事情 创建许多版本 每个版本都有固定数量
  • 是否可以从 C++ 应用程序调用 C# 应用程序?

    我是一名编程学生 现在我已经上了两门 C 课程 这个学期我将参加我的第一门 C 课程 出于好奇 是否可以从 C 应用程序调用 C 应用程序 如果是的话 是否还可以检查运行该程序的计算机是否具有 NET框架 我只是很好奇 我想如果可能的话 这
  • 叮当错误?命名空间模板类的朋友

    以下代码在 clang 下无法编译 但在 gcc 和 VS 下可以编译 template
  • 进程退出后 POSIX 名称信号量不会释放

    我正在尝试使用 POSIX 命名信号量进行跨进程同步 我注意到进程死亡或退出后 信号量仍然被系统打开 在进程 打开它 死亡或退出后是否有办法使其关闭 释放 早期的讨论在这里 当将信号量递减至零的进程崩溃时 如何恢复信号量 https sta
  • MFC CList 支持复制分配吗?

    我在 MSVC 中查找了 CList 定义afxtempl h http www cppdoc com example mfc classdoc MFC AFXTEMPL H html并记录在MSDN http msdn microsoft
  • 异常堆栈跟踪不显示抛出异常的位置

    通常 当我抛出异常 捕获它并打印出堆栈跟踪时 我会看到抛出异常的调用 导致该异常的调用 导致该异常的调用that 依此类推回到整个程序的根 现在它只向我显示异常所在的调用caught 而不是它所在的地方thrown 我不明白是什么改变导致了
  • 将 OpenCV Mat 转换为数组(可能是 NSArray)

    我的 C C 技能很生疏 OpenCV 的文档也相当晦涩难懂 有没有办法获得cv Mat data属性转换为数组 NSArray 我想将其序列化为 JSON 我知道我可以使用 FileStorage 实用程序转换为 YAML XML 但这不
  • 如何以编程方式播放 16 位 pcm 数组 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个包含 16 位 pcm 值的短 数组 我希望能够在不添加任何标题 也不将任何文件保存到内存的情况下播放它 我知道我可能需要一个提供
  • C++ 将联合强制转换为其成员类型之一

    以下对我来说似乎完全符合逻辑 但不是有效的 C 联合不能隐式转换为其成员类型之一 有人知道为什么不这样做的充分理由吗 union u int i char c function f int i int main u v v i 6 f v
  • 如何在win32中使用GetSaveFileName保存文件?

    我编写此代码是为了获取 fileName 来保存我的文件 include stdafx h include
  • 在 C# 中何时使用 ArrayList 而不是 array[]?

    我经常使用一个ArrayList而不是 正常 array 当我使用时 我感觉好像我在作弊 或懒惰 ArrayList 什么时候可以使用ArrayList在数组上 数组是强类型的 并且可以很好地用作参数 如果您知道集合的长度并且它是固定的 则
  • Xamarin - SignalR 挂在连接上

    我正在尝试将我的 Xamarin 应用程序连接到托管在 Azure 上的 SignalR 后端 我遇到的问题是每次我在 HubConnection 上调用 StartAsync 时 它都会挂起客户端并且请求永远不会完成 我尝试通过应用程序进
  • 时间:2019-03-17 标签:c++fstream并发访问

    如果从不同的进程 线程同时访问文件会发生什么 据我所知 没有锁定文件的标准方法 只有操作系统特定的功能 就我而言 文件将被经常读取而很少写入 现在如果A打开一个文件进行读取 ifstream 并开始读取块 和B打开相同的文件进行写入 ofs
  • 浮点字节序?

    我正在为实时海上模拟器编写客户端和服务器 并且由于我必须通过套接字发送大量数据 因此我使用二进制数据来最大化可以发送的数据量 我已经了解整数字节顺序以及如何使用htonl and ntohl为了规避字节顺序问题 但我的应用程序与几乎所有模拟
  • Autoconf 问题:“错误:C 编译器无法创建可执行文件”

    我正在尝试使用 GNU 自动工具构建一个用 C 编写的程序 但显然我设置错误 因为当configure运行 它吐出 configure error C compiler cannot create executables 如果我看进去con
  • Xamarin.Forms UWP 项目中标题栏和选项卡之间令人恼火的空白

    我几乎是新手Xamarin Forms我正在开发一个相当简单的跨平台应用程序 该应用程序在 Android 中显示得足够好 但在 UWP 中却出现了一个愚蠢的空白 该项目由一个 TabbedPage 组成 其中包含 4 个 Navigati
  • 有没有办法直接在函数参数中格式化字符串而不是使用临时字符串?

    我有一个接受字符串 字符数组 作为参数的函数 void enterString char my string 当使用这个函数时 我经常发现自己想要输入格式化的字符串 我使用 sprintf 来做到这一点 然而 我每次都必须创建一个临时字符串

随机推荐

  • 仅特定路由或控制器需要 SSL 客户端证书

    我有一个使用 Kestrel 作为服务器的 ASP NET MVC Core 项目 它既提供用户内容 asp net mvc 又托管与代理 软件 通信的 Web API 控制器 我已启用 HTTPS 和客户端证书支持 问题是我想要调用 We
  • 将 excel 的动态文件路径传递给“OPENROWSET”

    我想将 excel 的动态 URL 传递给 OPENROWSET 注意 我将 Excel 文件的返回结果传递给光标 我想将文件路径传递给 excelpath 我尝试了很多方法 但它给出了语法错误 ALTER procedure dbo im
  • Android.mk - 包含 OpenCV 目录,用于使用 NDK 进行本机 C++ 编译

    我正在使用 NDK 将 C OpenCV 代码导入到 Android 应用程序中 首先 我必须说 我没有学过编程 我只是一个业余开发人员 所以有很多事情我无法管理 特别是编码之外的事情 我使用 QtCreator 来编写 C OpenCV
  • Subversion 与 CVS [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 用于从视频源(网络摄像头)发出新帧信号的 Gstreamer 消息

    我正在尝试使用 gstreamer 将网络摄像头的流保存为一系列图像 到目前为止我已经写了这段代码 usr bin python import sys os import pygtk gtk gobject import pygst pyg
  • Symfony2 - 如何在 EventListeners 中使用数据转换器

    我需要使用事件侦听器 因为我需要在表单中显示不同的内容 无论它是新实体还是已存在的实体 我可以做到这一点 我需要一个数据转换器 将实体显示为文本 这也是我可以做的 gt 但是 我无法同时执行 2 个操作 数据转换器 事件监听器 我收到错误
  • 在android中用canvas绘制四分之一规? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我怎样才能创建与此相同的仪表 是否存在这种仪表类型的库或 Maven 我使用画布作为圆规 但我无法创建
  • 为什么我们在编译时需要共享库

    为什么我们需要在可执行文件的编译期间存在共享库 我的推理是 由于共享库未包含在我的可执行文件中并在运行时加载 因此在编译时不应需要它 或者我错过了什么 include
  • 从 Docker Hub 中删除镜像标签?

    我无法找到资源来了解如何管理 Docker Hub 映像 我有一张标记为 V0 0 1 的图像 并构建了一个标记为 V0 0 2 的新图像 现在我想删除 V0 0 1 映像 因为新版本的构建方式不同 并且我不希望用户拉取旧映像 您可以轻松地
  • Delphi - 有关记录中方法的 RTTI 信息

    如何提取有关Delphi记录中方法的RTTI信息 使用新的 Rtti 单元可以吗 抱歉 记录中的方法没有 RTTI
  • 如何刷新 Netbeans 工作区?

    在 Eclipse 中 有一个称为刷新工作区或 F5 的工具可以刷新文件 以确保拾取在 Eclipse 外部更改的任何文件 我如何在 Netbeans 中做到这一点 我使用 6 9 1 进行 PHP Java 开发 我没有看到任何刷新 F5
  • 使用新值刷新 dat.gui

    I would like to refresh the dat gui menu with new values I have loaded a model and display in folder the name of the obj
  • 检查出口是否不存在,在反应路由器 6 中显示其他内容

    我想在反应路由器 6 中 当没有插座时显示一个占位符 有什么办法吗 lt gt
  • 无法使用 Bot Framework SDK v4 在 MS Teams 中渲染自适应卡

    我正在尝试在 MS Teams 中渲染自适应卡并收到消息 不支持指定的卡版本 我正在使用 Bot Framework SDK v4 node js 以下是代码片段 下面是welcome json中的自适应卡 contentType appl
  • Play Framework 2.X 和阻塞数据库调用

    我有点困惑 来自文档 http www playframework com documentation 2 1 0 ThreadPools 播放默认线程池 这是默认线程池 其中 Play Framework 中的所有应用程序代码都会被执行
  • PE 标头要求

    PE 文件 PE COFF 有哪些要求 应该设置哪些字段 哪些值 以使其能够在 Windows 上 运行 即执行 ret 指令然后关闭 没有错误 我首先构建的库是链接器 现在 我遇到的问题是 PE 文件 PE COFF 我不知道 PE 文件
  • iPhone 开发与 Symbian 开发相比如何?

    我花了几年时间进行 Symbian C 开发 我想知道 iPhone 开发与 Symbian 开发相比如何 我对在这两个平台上工作过一段时间的人的答案很感兴趣 澄清 示例 以下内容如何比较 Symbian C 与 Objective C 恕
  • 当用户拖动调整舞台窗口大小时,如何让 JavaFX 节点(文本区域、文本字段)正确调整大小?

    当用户拖动调整舞台窗口大小时 如何让 JavaFX 节点 文本区域 文本字段 正确调整大小 我有一段代码 它创建一个带有两个节点 TextArea TextField 的舞台 VBox 但是 当用户拖动来调整窗口大小时 这些组件不会按比例拖
  • 从存储在数据库中的 URL 中的变量中提取变量

    如果 youtube 网址 http www youtube com watch v ytWAw6YqN10S http www youtube com watch v ytWAw6YqN10S 如何创建 v 变量并让它从 youtubeu
  • System.Net.NetworkInformation.Ping 崩溃

    我的网站拥有超过 600 台设备 我正在尝试使用标准 NET ping 类对它们一一进行 ping 操作 由于某种原因 该线程正在崩溃 几天后它就停止响应 它所做的只是 ping 网络上的设备 我们使用的是 Microsoft Window