如何从后面的代码ping URL

时间:2011-11-30 10:27:23

标签: 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
        {
            rep = (HttpWebResponse)req.GetResponse();
        }
        catch (Exception)
        {

           //if environment is production then this URL will not work
           //do some functionality
        }

所以通过上面的代码我想在生产环境中做一些功能 ,上面的逻辑运行良好,但想获得一些完美的解决方案,如ping命令,如果URL存在,则返回true,否则为false。

请在这里建议一些好的逻辑

提前致谢。

4 个答案:

答案 0 :(得分:1)

不,我认为这不会起作用 - 如果您运行的是生产代码,那么即使您从暂存中调用它,检查也会一直成功。

检查答案:

Azure Detect Staging vs Production

为您的真实问题提供了更强大的答案。

答案 1 :(得分:0)

如何启动尝试通过端口80(HTTP)连接到服务器的套接字? 这将是一个很好的迹象表明网站是否正常运行。

答案 2 :(得分:0)

“ping”资源的唯一方法是获取错误代码。只是确保它只是一个获取操作,以便服务器上不会发生任何变化。

答案 3 :(得分:0)

您知道在部署应用程序是部署为实时还是测试/暂存时,为什么不在web.config上设置内容。那你就可以做到

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