Azure具有出色的滚动更新功能,因此整个系统不会一次全部脱机。但是,当Azure更新我的Web角色时,AppDomains可以理解为可回收。有时,ASP.NET启动代码可能需要一分钟才能完成初始化,而且只有在用户点击新服务器时才会这样做。
我是否可以让Azure启动该站点的AppDomain并在转移到下一个服务器之前等待它出现?也许在OnStart
的{{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();
}
}