簡體   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