Windows Azure是否支持Application Warm-Up模块或类似的东西?

Cor*_*ien 7 asp.net iis azure

我们在Windows Azure中托管的Web角色使用旧的基于ASMX的Web Reference来联系外部系统.Web Reference代理代码足够大,第一次实例化它会产生很大的成本.

我们希望能够在Web角色启动而不是第一次请求时运行.

我知道IIS 7.5有一个应用程序预热模块,可以让我们实现这一点,但是我无法弄清楚在Windows Azure上是否存在类似的东西.

谢谢,科里

m_d*_*vid 5

我喜欢Steve Marx的解决方案.

将此行添加到ServiceDefinition.csdef:

<Startup>
  <Task commandLine="startup\disableTimeout.cmd" executionContext="elevated" />
</Startup>
Run Code Online (Sandbox Code Playgroud)

并在名为startup的文件夹中添加disableTimeout.cmd,其代码如下:

%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.processModel.idleTimeout:00:00:00
Run Code Online (Sandbox Code Playgroud)

来自这里的原始解决方案:http://blog.smarx.com/posts/controlling-application-pool-idle-timeouts-in-windows-azure

在模拟器中运行时请阅读:http://blog.smarx.com/posts/skipping-windows-azure-startup-tasks-when-running-in-the-emulator


Cor*_*ien 1

看起来 Global.asax 中的 Application_Start 处理程序是在部署 Web 角色(对于 ASP.NET)时执行的,而不是在第一个请求时执行的,因此这对我们有用。