首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IIS的云服务预热

使用IIS的云服务预热
EN

Stack Overflow用户
提问于 2020-10-19 09:05:31
回答 2查看 136关注 0票数 0

我偶然发现了这个关于预热IIS应用程序https://ruslany.net/2015/09/how-to-warm-up-azure-web-app-during-deployment-slots-swap/的链接,这个特性可以用于azure云服务吗?此外,我有很少的Autofac依赖项,并且我正在初始化db连接对象并将其注册到容器中。目前我尝试了一些策略,因为只有在第一次请求时,这个集合才会被初始化为健康检查的一部分,所以我不认为将其作为健康检查的一部分有什么坏处。以后的健康检查请求不会触及启动部分,除非App进入空闲状态。应用这样的策略有什么坏处吗?

EN

回答 2

Stack Overflow用户

发布于 2020-10-19 09:50:35

如果你想在azure云服务中预热你的webapp,你需要创建至少2个

您的场景与本例中的问题类似。

Azure cloud service app (web role) goes down for ~10 mins occasionally due to Windows Updates? How can I schedule them?

建议您使用azure web应用程序服务,目前Azure web应用程序相对成熟。在定价方面有优势,并且将为web应用程序提供更多功能。也可以很好地解决你的问题。

票数 0
EN

Stack Overflow用户

发布于 2020-10-20 14:09:18

是的,这在传统的web角色中是可能的。

请参阅https://docs.microsoft.com/en-us/archive/blogs/kwill/role-instance-restarts-due-to-os-upgrades,特别是常见问题#5和相关代码。

如果您的网站预热需要几分钟时间(预编译和模块加载的标准IIS/ASP.NET预热,或者预热缓存或其他应用程序特定任务),则您的客户端可能会遇到宕机或随机超时。在角色实例重新启动并且OnStart代码完成之后,您的角色实例将被放回负载均衡器轮换中,并开始接收传入的请求。如果您的网站仍在预热,那么所有这些传入的请求都将排队并超时。如果您的web角色只有2个实例,则在IN_1重启以进行来宾操作系统更新时,仍在预热中的IN_0将接受100%的传入请求。这可能会导致您的服务完全中断,直到您的网站在这两个实例上完成预热。建议将您的实例保持在OnStart中,这将使其处于繁忙状态,在您完成预热之前,它不会接收来自负载均衡器的传入请求。您可以使用以下代码来完成此操作:

代码语言:javascript
复制
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();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64419870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档