我有一个带有2个实例的CloudService Classic应用程序,我将它们称为bob_app_001和bob_app_002,每个BobApp中都有5个实例.
该应用程序是一个c#Api,具有一个用于监控〜/ ping的终结点.
目前,我是通过从流量管理器中取出一项服务来部署流量,让流量流失,然后将VIP交换阶段到生产插槽,然后重新添加到流量管理器中.这里的问题是,随着服务自身旋转,前几个请求总是很慢.我试图通过在将池放回旋转之前命中ping端点来旋转所有与Web相关的内容来避免这种情况.
如何编写脚本,从bob_app_001获取所有应用程序的URL,然后可以在ping端点上通过对Inboke-WebRequest分别调用Invoke-WebRequest进行循环,以预热服务,然后在VIP交换后将其放回TrafficManager.
解决方法:
从bob_app_001获取所有应用程序的URL
这将是棘手的部分,尤其是在没有深入应用程序内部并且不知何故公开网址的情况下(取决于路由的设置方式)
我建议改为使用应用程序初始化模块.
要启用该模块,您需要在web.config中创建一个applicationInitialization部分,在其中定义要启动初始化任务将要命中的url.
<system.webServer>
<applicationInitialization>
<add initializationPage="/app/init" />
</applicationInitialization>
<system.webServer>
然后用一个轻量级的控制器来初始化:
public class InitController : ApiController
{
[Route("/app/init")]
public IHttpActionResult Index()
{
//do your initialisation / warmup here
return Ok();
}
}
在此示例中,我没有提及任何安全性概念,但是最好限制从应用程序内部对/ app / init的访问(并且只能运行一次)
设置完成后,“ app / init” URL下的代码完成后,将完成部署插槽之间的交换操作.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。