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

问题描述 投票:1回答:1

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

我才意识到,每隔5分钟,qazxsw poi就被称为qazxsw poi

我的代码看起来像这样:

Session_OnStart

我们的想法是为每个访问该网站的用户提供一个GUID,匿名关注他正在做的事情以及他打开的页面。

但是,今天早上我没有进入我的PreProd环境,而且它每隔5分钟(大约5秒钟)被解雇的事实表明这是一个后台进程或访问网站的东西。 只有在Azure上托管时,才会在localhost测试中发生这种情况

如何阻止此过程以阻止Azure进程触发enter image description here? 谢谢

c# azure background-process
1个回答
2
投票

您可能已启用Always On。你可以在下面禁用它 应用服务 - >配置 - > 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()); }

永远在线。默认情况下,如果应用程序闲置一段时间,则会将其卸载。这使系统可以节省资源。在“基本”或“标准”模式下,您可以启用“始终开启”以始终加载应用程序。如果您的应用程序运行连续的WebJobs或运行使用CRON表达式触发的WebJobs,则应启用Always On,否则Web作业可能无法可靠地运行。

PS看看Session_OnStart可以为您做什么。

编辑:

当我的网站公开时,Always On禁用会更快吗?没有它它会很慢,它无法使用。

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

这个问题有几种可能的解决方案,比如User Flows。另一个是切换到ASP.NET Core,因为它更快。

更多信息:Ian Kemp

© www.soinside.com 2019 - 2024. All rights reserved.