为了账号安全,请及时绑定邮箱和手机立即绑定

来自 Azure Function 的 Ping 服务器

来自 Azure Function 的 Ping 服务器

C#
慕尼黑的夜晚无繁华 2023-09-16 16:58:17
我有以下 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;为了return true;测试,该功能运行良好。我需要配置什么才能让该函数执行 ping 操作?
查看完整描述

1 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

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

https://img3.sycdn.imooc.com/65056e5900018db106120256.jpg

我们还可以安装一些工具来进行 ping 操作,例如 PsPing、Nmap 或 Telnet。

这是更新内容:

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

首先,我们应该安装 psping。

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

https://img1.sycdn.imooc.com/65056e67000137e210840714.jpg

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

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

https://img1.sycdn.imooc.com/65056e750001965a10380789.jpg

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

https://img1.sycdn.imooc.com/65056e86000126e813190745.jpg


查看完整回答
反对 回复 2023-09-16
  • 1 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信