配置Azure Web角色以在启动时启动应用程序域

时间:2014-07-03 15:33:52

标签: asp.net .net azure azure-web-roles

Azure具有出色的滚动更新功能,因此整个系统不会一次全部脱机。但是,当Azure更新我的Web角色时,AppDomains可以理解为可回收。有时,ASP.NET启动代码可能需要一分钟才能完成初始化,而且只有在用户点击新服务器时才会这样做。

我是否可以让Azure启动该站点的AppDomain并在转移到下一个服务器之前等待它出现?也许在OnStart的{​​{1}}方法中使用了一些魔法?

1 个答案:

答案 0 :(得分:1)

请参阅Azure Autoscale Restarts Running Instances,其中包含以下代码:

public class WebRole : RoleEntryPoint
{
    public override bool OnStart()
    {
        // For information on handling configuration changes
        // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.
        IPHostEntry ipEntry = Dns.GetHostEntry(Dns.GetHostName());
        string ip = null;
        foreach (IPAddress ipaddress in ipEntry.AddressList)
        {
            if (ipaddress.AddressFamily.ToString() == "InterNetwork")
            {
                ip = ipaddress.ToString();
            }
        }

        string urlToPing = "http://" + ip;
        HttpWebRequest req = HttpWebRequest.Create(urlToPing) as HttpWebRequest;
        WebResponse resp = req.GetResponse();
        return base.OnStart();
    }
}