我们在 Windows Azure 中托管了一个 Web 角色,该角色使用旧的基于 ASMX 的 Web 引用来联系外部系统。 Web Reference 代理代码足够大,第一次实例化它的成本很高。
我们希望能够在 Web 角色启动时运行此操作,而不是在第一个请求时运行。
我知道 IIS 7.5 有一个 Application Warm-Up模块可以让我们实现这一目标,但我无法确定在 Windows Azure 上托管是否存在类似的东西。
谢谢, 科里
最佳答案
我喜欢 Steve Marx 的解决方案。
将此行添加到ServiceDefinition.csdef:
<Startup>
<Task commandLine="startup\disableTimeout.cmd" executionContext="elevated" />
</Startup>
并在名为 startup 的文件夹中添加 disableTimeout.cmd,其中包含以下代码行:
%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.processModel.idleTimeout:00:00:00
原始解决方案来自此处: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
关于asp.net - Windows Azure 是否支持应用程序预热模块或类似模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2479241/