![](/img/trans.png)
[英]SQL Server timeout when requesting roles in MVC5.net application
[英]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.