![](/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.