繁体   English   中英

使用SQL Server在Windows Azure上运行的MVC是否没有活动超时延迟?

[英]Is there a no activity timeout delay with MVC running on Windows Azure with the SQL Server?

我有一个没有用户的新应用程序。 我知道第一次发布到Azure时会延迟编译代码。 但是,在使用该应用程序后,如果我尝试在大约30分钟内再次访问它,那么开始时似乎非常慢,而一旦访问它,它就会变得更快。 我的应用程序使用MVC4并连接到SQL Server进行登录身份验证。

是否有超时或延迟? 使用一段时间后,服务是否会进入睡眠模式以被唤醒?

默认情况下,IIS闲置20分钟后会关闭应用程序池,以节省服务器资源。 http://technet.microsoft.com/zh-CN/library/cc771956(v=ws.10).aspx

现在,据我所知,为了使Azure上的事情变得更加有趣,您不能从应用程序的web.config文件配置此设置,而只能通过UI,命令行或machine.config文件进行配置。 但是有希望!

这是假设您使用的是Web / Worker角色,而不是他们使用的新Web站点。

您必须为您的Web角色创建一个启动任务,该任务将为您进行IIS配置。 它是一个简单的批处理文件,您可以指示Web角色在启动时运行。 这里有更多信息,但是.cmd文件基本上看起来像这样:

REM *** This keeps this file from running on your local emulator. 
if "%EMULATED%"=="true" goto :EOF

REM *** Prevent the IIS app pools from shutting down due to being idle. 
%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.processModel.idleTimeout:00:00:00

REM *** Prevent IIS app pool recycles from recycling on the default schedule of 1740 minutes (29 hours). 
%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.recycling.periodicRestart.time:00:00:00

并在serviceDefintion.csdef文件中,添加以下架构元素(假设您将该文件放置在Web应用程序的启动文件夹中,并将其命名为disableTimeout.cmd):

<Startup>
  <Task commandLine="startup\disableTimeout.cmd" executionContext="elevated" />
</Startup>

请记住,有充分的理由来回收和闲置您的应用程序池超时,但是如果您的站点访问量较低,则可以对其进行调整。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM