我有一个问题,我想从后面的代码(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。
请在这里建议一些好的逻辑
提前致谢。
答案 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.
}