gpt4 book ai didi

c# - 如何阻止 Azure 每 5 分钟触发一次 Session_Start

转载 作者:行者123 更新时间:2023-12-03 01:38:55 25 4
gpt4 key购买 nike

我正在处理托管在 Azure 上的个人 ASP.NET MVC5 项目

我刚刚意识到,每 5 分钟就会调用 Session_OnStart enter image description here

我的代码如下所示:

public void Session_OnStart()
{
Guid sessionGuid = Guid.NewGuid();
HttpContext.Current.Session.Add("_MySession", sessionGuid);
RegisterSession(sessionGuid);

logger.Log(LogLevel.Info, "Starting session with guid " + sessionGuid.ToString());
}

这个想法是为每个访问该网站的用户提供一个 GUID,以便匿名跟踪他在做什么以及他打开了哪些页面。

但是,今天早上我没有进入 PreProd 环境,事实上它每 5 分钟(或多或少 5 秒)触发一次,表明它是一个后台进程或访问网站的进程。
这在本地主机测试中没有发生,仅在 Azure 上托管时发生

如何停止此操作以防止 Azure 进程触发 Session_OnStart
谢谢

最佳答案

您可能启用了“始终在线”。您可以在
下禁用它应用服务 -> 配置 -> General Settings

Always On. By default, apps are unloaded if they are idle for some period of time. This lets the system conserve resources. In Basic or Standard mode, you can enable Always On to keep the app loaded all the time. If your app runs continuous WebJobs or runs WebJobs triggered using a CRON expression, you should enable Always On, or the web jobs may not run reliably.

PS 看看Application Insights User Flows是什么可以为您做。

编辑:

When my website will be public, will it be reasonnably faster with Always On disabled? It's so slow without it, it's unusable.

您遇到的启动缓慢是因为运行您网站的进程在一段时间不活动后关闭。必须重新启动该过程需要一些时间,因此速度会减慢。顺便说一句,这是因为 ASP.NET 在 IIS 中运行。这不是 Azure 特定的问题。就像 Ian Kemp说,必须解决你的应用速度缓慢的问题。

此问题有多种可能的解决方案,例如 Precompiling your website 。另一种方法是切换到 ASP.NET Core,因为它要快得多。

更多信息:Fixing slow initial load for IIS

关于c# - 如何阻止 Azure 每 5 分钟触发一次 Session_Start,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55706313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com