来自 Azure Function 的 Ping 服务器

2023-12-25

我有以下 Azure 函数,但失败了访问被拒绝(忽略逻辑很奇怪的事实,我只是在做第一次测试)

public static void Run(TimerInfo myTimer, ILogger log)
{
    List<string> servers = new List<string>()
    {
        "server1"
    };

    foreach(string server in servers)
    {
        if (!Ping(server))
        {
            SendEmail($"Server {server} seems down.", log);
        }
    }
}

static bool Ping(string hostName)
{
    Ping pingSender = new Ping();
    int timeout = 120;
    PingReply reply = pingSender.Send(hostName, timeout);
    return reply.Status == IPStatus.Success;
}

static void SendEmail(string message, ILogger log)
{
    log.LogInformation(message);
}

如果我改变线路

PingReply reply = pingSender.Send(hostName, timeout);
return reply.Status == IPStatus.Success;

to return true;为了测试,该功能运行良好。

我需要配置什么才能让该函数执行 ping 操作?


据我所知,我们无法在Azure功能中成功执行ping操作,因为Azure中不允许使用ICMP协议。但我们可以在里面做tcpping。您可以在Azure功能控制台中测试它(如下截图所示):

enter image description here We can also install some tools to do ping operation, such as PsPing, Nmap, or Telnet.

这是更新内容:

根据一些研究,我认为Azure Function可以满足您的要求。

首先,我们应该安装 psping。您可以在此页面下载:https://learn.microsoft.com/zh-cn/sysinternals/downloads/psping#installation https://learn.microsoft.com/zh-cn/sysinternals/downloads/psping#installation

然后解压缩 psping 文件并在 Azure 函数中打开 Kudu。

然后点击“调试控制台”-->“CMD”-->“site”,新建一个名为“tools”的文件夹,点击“tools”并将你的 psping 文件(PSTools)拖到“tools”文件夹中。

之后请参考我下面发布的代码

如果 ping 成功,我的代码中的变量“err”将不会显示任何内容。如果 ping 失败,则会显示错误。所以你可以根据它来判断成功。

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

来自 Azure Function 的 Ping 服务器 的相关文章

  • std::list::clear 是否会使 std::list::end 迭代器无效?

    检查这个代码 include stdafx h include
  • 具有多个谓词的 C++11 算法

    功能如std find if来自algorithmheader 确实很有用 但对我来说 一个严重的限制是我只能为每次调用使用 1 个谓词count if 例如给定一个像这样的容器std vector我想同时应用相同的迭代find if 多个
  • 在 Mac OS X 上安装 libxml2 时出现问题

    我正在尝试在我的 Mac 操作系统 10 6 4 上安装 libxml2 我实际上正在尝试在 Python 中运行 Scrapy 脚本 这需要我安装 Twisted Zope 现在还需要安装 libxml2 我已经下载了最新版本 2 7 7
  • 如何查明 .exe 是否正在 C++ 中运行?

    给定进程名称 例如 程序 exe C 标准库没有这样的支持 您需要一个操作系统 API 来执行此操作 如果这是 Windows 那么您将使用 CreateToolhelp32Snapshot 然后使用 Process32First 和 Pr
  • DataGridView 列中的数字文本框

    我有一个DataGridView 我想要它的第一列或任何所需的列 其中有textboxes在其中 成为NUMERIC ONLY 我目前正在使用这段代码 private void dataGridViewItems EditingContro
  • C 类型命名约定,_t 或 ALLCAPS

    我一直想知道是否有任何命名约定 例如何时对类型使用全部大写以及何时追加 t 什么时候不使用任何东西 我知道当时 K R 发布了各种有关如何使用 C 的文档 但我找不到任何相关内容 在 C 标准库类型中 t看起来漂亮占主导地位 time t
  • 提升mapped_file_source、对齐方式和页面大小

    我正在尝试在性能很重要的上下文中解析一些大小高达几百兆字节的文本文件 因此我使用 boostmapped file source 解析器期望源以空字节终止 因此我想检查文件大小是否是页面大小的精确倍数 如果是 则使用较慢的非内存映射方法 我
  • 如何在新窗口中打开图像或pdf文件?

    我有一个 gridview 它包含文件名和文件路径 图像和 pdf 格式文件 其中我使用了模板字段 在该字段下放置了 1 个图像按钮 单击该图像按钮 即 查看 按钮 时 我想在新窗口中打开所选文件 这是我的代码 protected void
  • 如何使用 C# 查询远程 MS ACCESS .mdb 数据库

    我正在尝试使用 C 查询 mote MS ACCESS 数据库 mdb 文件 将文件复制到本地计算机时可以成功查询它 我只想远程放置文件 所以我的客户端程序不包含原始数据 static string m path http www xyz
  • MSChart 控件中的自定义 X/Y 网格线

    我有一个带有简单 2D 折线图的 C Windows 窗体 我想向其中添加自定义 X 或 Y 轴标记 并绘制自定义网格线 例如 以突出显示的颜色 虚线 我查看了 customLabels 属性 但这似乎覆盖了我仍然想显示的默认网格 这是为了
  • WinForms - 加载表单时如何使用 PaintEventArgs 运行函数?

    我试图理解图形 在 Graphics FromImage 文档中 它有这样的示例 private void FromImageImage PaintEventArgs e Create image Image imageFile Image
  • 使用 Unity 在 C# 中发送 http 请求

    如何使用 Unity 在 C 中发送 HTTP GET 和 POST 请求 我想要的是 在post请求中发送json数据 我使用Unity序列化器 所以不需要 新的 我只想在发布数据中传递一个字符串并且能够 将 ContentType 设置
  • 不使用放置 new 返回的指针时的 C++ 严格别名

    这可能会导致未定义的行为吗 uint8 t storage 4 We assume storage is properly aligned here int32 t intPtr new void storage int32 t 4 I k
  • 时间:2019-03-17 标签:c#TimerStopConfusion

    我想通过单击按钮时更改文本颜色来将文本框文本设置为 闪烁 我可以让文本按照我想要的方式闪烁 但我希望它在闪烁几次后停止 我不知道如何在计时器触发几次后让它停止 这是我的代码 public Form1 InitializeComponent
  • 在二进制数据文件的标头中放入什么

    我有一个模拟 可以读取我们创建的大型二进制数据文件 10 到 100 GB 出于速度原因 我们使用二进制 这些文件依赖于系统 是从我们运行的每个系统上的文本文件转换而来的 所以我不关心可移植性 当前的文件是 POD 结构的许多实例 使用 f
  • 使用 IdentityDbContext 和 Code First 自动迁移表位置和架构的实体框架?

    我正在尝试使用 IdentityDbContext 类设置自动迁移更新 并将更改传播到整个数据库的实际 DbContext 在进入代码之前 在使用自动迁移实现 IdentityDbContext 时 我收到此错误 影响迁移历史系统表位置的自
  • 对多个对象使用事件处理程序

    我有 20 件物品List
  • 在 C 中使用 #define 没有任何价值

    If a define没有任何价值地使用 例如 define COMMAND SPI 默认值是0吗 不 它的评估结果为零 从字面上看 该符号被替换为空 然而 一旦你有了 define FOO 预处理器条件 ifdef FOO现在将是真的 另
  • 如何在c中断言两个类型相等?

    在 C 中如何断言两种类型相等 在 C 中 我会使用 std is same 但搜索 StackOverflow 和其他地方似乎只能给出 C 和 C 的结果 在C中没有办法做到这一点吗 请注意 这不是询问变量是否具有某种类型 而是询问两个类
  • 是否可以使用 Dapper 流式传输大型 SQL Server 数据库结果集?

    我需要从数据库返回大约 500K 行 请不要问为什么 然后 我需要将这些结果保存为 XML 更紧急 并将该文件通过 ftp 传输到某个神奇的地方 我还需要转换结果集中的每一行 现在 这就是我正在做的事情 TOP 100结果 使用 Dappe

随机推荐

  • 为什么 VB 中的 lambda 表达式与 C# 中不同?

    我刚刚在 NHibernate 中遇到了一个错误 该错误恰好已经被提出 https nhibernate jira com browse NH 2763 https nhibernate jira com browse NH 2763 我不
  • 将 duff 的设备从 C 移植到 JavaScript

    我有这种 Duff 的 C 语言设备 它工作正常 将文本格式设置为金钱 include
  • 带有 IIS 的 Kestrel - 运行时缺少 libuv.dll

    我们正在设置一个现有的 Web API 服务器 以便与现有的 API 一起为站点提供服务 我一直在松散地关注本文 http miniml ist dotnet how to serve a static site plus a web ap
  • 解析 WSDL 的简单方法

    我正在尝试解析 WSDL 以获取操作 端点和示例有效负载 用户输入的 WSDL 我找不到执行此操作的教程 我只能找到生成我不需要的源代码的那些 我尝试过使用 XBeans 但显然我需要 Saxon 有没有一种简单的轻量级方法可以在没有 Sa
  • 我如何处理异常?

    Angular 有一个很棒的 异常处理程序 https docs angularjs org api ng service 24exceptionHandler React js 有类似的东西吗 我想将我的错误记录到外部 API 例子 ht
  • SoundCloud track.stream_url 对某些曲目不起作用

    我注意到在 soundcloud 上的某些曲目上 stream url 指向 404 页面未找到 该曲目已设置为可流式传输 但流式传输 URL 仍然不起作用 这是一个例子 http api soundcloud com tracks 129
  • 向 R 绘图添加类似 Excel 功能的方法? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我一直在研究 R 图形参数 试图让我
  • 使用Intellij IDEA重新加载远程Spring Boot应用程序时出现异常

    我正在尝试使用 spring 设置远程 spring boot 环境devtools http docs spring io spring boot docs current reference html using boot devtoo
  • 将 SharePoint 列表数据提取到单独的 SQL Server 表的最简单方法?

    Edited What is the easiest way to scrape extract SharePoint list data to a separate SQL Server table One condition you r
  • wkhtmltopdf - 背景颜色未填充第二页

    我正在尝试使用 wkhtmltopdf 将 HTML 转换为 PDF 文档 我正在运行的命令是wkhtmltopdf test html test pdf 软件版本 wkhtmltopdf V wkhtmltopdf 0 12 5 with
  • php exec 命令(或类似命令)不等待结果

    我有一个想要运行的命令 但我不希望 PHP 坐等结果 是否可以让 PHP 不等待结果 即只是启动它并继续执行下一个命令 我找不到任何东西 并且不确定它是否可能 我能找到的最好的办法就是有人在一分钟内开始执行 CRON 工作 来自文档 htt
  • 仅在基于范围的循环中迭代奇数(偶数)元素

    假设我们有一个普通数组 或其他支持基于范围的循环的容器 const int N 8 int arr N 0 1 2 3 4 5 6 7 使用索引或迭代器 我们可以循环奇数元素并将索引增加 2 for int i 0 i lt N i 2 s
  • 在 noUISlider 中格式化工具提示

    我在我的 Rails 项目中使用 noUISlider noUiSlider create slider start 3 connect lower step 1 range min 1 max 9 pips mode steps dens
  • 如何设置 GOPRIVATE 环境变量

    我开始研究一个Go项目 它使用来自 Github 私有存储库的一些私有模块 每当我尝试运行时go run main go它给了我一个下面的410 Gone error 验证 github com repoURL 电子邮件受保护 cdn cg
  • Google 的 XSLT 页面索引

    我的网站是使用 XML 作为数据存储并使用 XSLT 作为模板创建的 看来 Google 不太擅长为基于 XML XSLT 的网站建立索引 是否有任何高效 易于实现的软件组件可以仅为 Google bot 索引器呈现 XSLT 如果他们使用
  • 去掉6位数后的经纬度小数部分

    我以这种格式得到纬度和经度 纬度23 132679999999997 经度72 20081833333333 但我想要这种格式 纬度 23 132680 经度 72 200818 我怎样才能转换 double Latitude 23 132
  • 重试 F# 中的计算表达式或其他构造

    我希望能够在 F 中编写一个计算表达式 以便在抛出异常时能够重试操作 现在我的代码如下所示 let x retry fun gt GetResourceX let y retry fun gt GetResourceY let z retr
  • 如何在拖动光标时绘制没有间隙的细线?

    我有以下类 它刷新第 0 层中的 jpeg 文件 第 1 层用于绘制 绘制 草绘与粉碎事物相关的任何内容 但在我的绘画中 当我想画一条细线时 它就断了 因为鼠标光标移动需要慢一些 如何解决鼠标快速移动时线保持连接状态的问题 注释 java
  • 如何使用 Objective C 通过单击分段按钮在 Tableview 上重新加载字典?

    我需要创建一个tableview有两个按钮UISegment control 我正进入 状态JSON反应两个不同arrays有两个keys 对于这两个键我创建了两个buttons 每当我单击分段按钮一 然后Schools键值应该加载到表视图
  • 来自 Azure Function 的 Ping 服务器

    我有以下 Azure 函数 但失败了访问被拒绝 忽略逻辑很奇怪的事实 我只是在做第一次测试 public static void Run TimerInfo myTimer ILogger log List