【问题标题】:Azure WebSite Always OnAzure 网站始终开启
【发布时间】:2014-10-26 22:57:40
【问题描述】:

我有一个在 Azure 网站上运行的 WebAPI 应用程序。它在基本模式下运行,我可以选择使其“始终开启”。关于这到底意味着什么,网上似乎有相互矛盾的信息。我知道效果,但“如何”在这里很重要。特别是,某些东西会定期自动命中我的应用程序中的端点吗?如果是这样,我可以控制它命中的端点吗?

正如我所提到的,它是一个 Web API 应用程序,默认路由完成了非常重要的工作,并导致大量出站流量,它还会导致项目被放置到最终将被处理的工作队列中。我希望应用程序始终开启(没有冷启动时间),但我不希望某些服务向应用程序发出请求。

【问题讨论】:

  • 这篇文章中有一些信息:stackoverflow.com/questions/21840983/…
  • 我看到了这个花絮,“如果站点碰巧因任何其他原因重新启动,Always On 将确保启动您的站点并向站点根目录 / 发送请求。”这表明他们确实在启动时访问了站点根目录。我仍然很好奇他们是否会点击站点根目录以使其保持活力。
  • 对任何服务的“默认”URL 做一些重要的工作似乎会导致这种问题;大多数自动化系统都假设站点的根目录只是一个登录页面。我会强烈建议更改该设计,以使您的应用程序根目录上的 HTTP GET 花费尽可能少。
  • @Micah,是的,它会触及您网站的根目录。
  • @Tragedian 我同意,并且正在努力建立一个站点根目录不执行任何操作的模型。我编写的服务往往只做一件事,因此它们只有一个端点,并且将该端点设置为默认值似乎是合理的。但是,如果不是 Azure 惩罚我,那么其他人最终会。 :(

标签: azure azure-web-app-service


【解决方案1】:

一旦您的 Azure 网站被标记为 AlwaysOn,您的站点根目录将在几秒钟内被点击。我们还确保您的站点已启动并在所有工作人员上运行(如果您已配置自动缩放选项等)。之后,如果工作进程崩溃,alwaysOn 会确保它恢复正常。 您无法控制它命中的端点。

【讨论】:

  • 不是我想要的答案,而是我相信的正确答案。
  • 我还没有尝试过,但你可以在 - iis.net/configreference/system.webserver/… - 你的 web.config 中设置 applicationInitialization 来指定你想要访问的页面。 - 我会试试这个并确认。
  • 那么应用程序初始化是否可以控制端点命中,还是会在向站点根节点发出请求后简单地向指定端点添加另一个请求?
  • 你可以指定应用初始化命中的url。
  • 使用 applicationInitialization 功能,您可以指定在您的网站启动时将调用的相对路径(到您的网站)。 AlwaysOn 总是命中站点的根目录,但如果您配置应用程序初始化,它将命中您在配置中指定的任何路径。
猜你喜欢
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-15
  • 1970-01-01
  • 2011-07-29
相关资源
最近更新 更多