C# 如何从代码隐藏中ping URL

C# 如何从代码隐藏中ping URL,c#,azure,exe,ping,C#,Azure,Exe,Ping,我有一个问题,我想从代码隐藏(EXE项目)ping URL,通过它我可以知道运行我的EXE的Azure应用程序的环境 string dep = RoleEnvironment.DeploymentId.ToString(); WebRequest req = WebRequest.Create("http://" + dep + ".cloudapp.net"); HttpWebResponse rep= null; try

我有一个问题,我想从代码隐藏(EXE项目)ping URL,通过它我可以知道运行我的EXE的Azure应用程序的环境

        string dep = RoleEnvironment.DeploymentId.ToString();
        WebRequest req = WebRequest.Create("http://" + dep + ".cloudapp.net");
        HttpWebResponse rep= null;
        try
        {
            rep = (HttpWebResponse)req.GetResponse();
        }
        catch (Exception)
        {

           //if environment is production then this URL will not work
           //do some functionality
        }
所以,通过上面的代码,我想在生产环境中实现一些功能 ,上面的逻辑运行良好,但希望得到一些完美的解决方案,如ping命令,若URL存在,则返回true,否则返回false

请告诉我一些好的逻辑


提前感谢。

如何启动一个套接字,尝试通过端口80(HTTP)连接到服务器?
这将很好地指示站点是否已启动。

对资源进行“ping”的唯一方法是获取错误代码。只需确保它只是一个get操作,这样服务器上就不会发生任何更改。

您知道在部署应用程序时是部署为live还是测试/登台,那么为什么不在web.config上设置一些内容呢。那你就做吧

If (ConfigurationManager.AppSettings["Envirmonment"] == "Live")
{
    //do live stuff
}
else
{
    //do testing stuff.
}

不,我认为这不起作用-如果您运行了生产代码,那么检查将始终成功,即使您从暂存调用它

检查以下问题的答案:


这为您真正的问题提供了更可靠的答案。

可能重复的可能重复的可能重复的使用System.Net.NetworkInformation.Ping类如何?