Alternativa ao pool de aplicativos startMode = "AlwaysRunning"

8

Se um aplicativo da Web solicitou que fosse configurado com seu pool de aplicativos, deve ser configurado no applicationHost.config como:

<add name="AppPool" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" />

O mesmo resultado seria alcançado apenas solicitando uma página do servidor a cada minuto? Ou definir startMode com esse valor também tem outras implicações?

Chris Marisic
fonte

Respostas:

6

Parece ser o mesmo. Aparentemente, como a Microsoft viu os desenvolvedores fazendo isso, eles criaram esse novo recurso para lidar com isso automaticamente.

[Os desenvolvedores] planejam scripts personalizados para enviar solicitações falsas ao aplicativo para "ativá-lo" periodicamente e executar esse código antes que o cliente o atinja, ou simplesmente fazem com que o infeliz primeiro cliente que acessa o aplicativo aguarde enquanto essa lógica termina antes processando a solicitação (o que pode levar a um longo atraso).

O ASP.NET 4 é fornecido com um novo recurso chamado "inicialização automática" que trata melhor desse cenário e está disponível quando o ASP.NET 4 é executado no IIS 7.5 (fornecido com o Windows 7 e o Windows Server 2008 R2). O recurso de inicialização automática fornece uma abordagem controlada para iniciar um processo de trabalho do aplicativo, inicializar um aplicativo ASP.NET e aceitar solicitações HTTP.

Dos aplicativos ASP.NET de inicialização automática de Scott Guthrie (VS 2010 e .NET 4.0 Series) .

Portanto, a menos que você não esteja usando o IIS 7.5, diria apenas usar a funcionalidade interna.

(E obrigado; eu não conhecia esse recurso, mas definitivamente consigo pensar em sites que desenvolvo para usá-lo.)

James Skemp
fonte
6
É uma pena que eles tenham criado esse recurso no nível applicationHost.config. Em vez disso, deve estar no nível web.config.
precisa saber é o seguinte
4

O IIS 7.5 inclui um sinalizador adicional em um nível de Site ou Aplicativo chamado preloadEnabled. Definir isso como true criará uma solicitação falsa para aquecer o site. Deve ser usado em conjunto com autoStart.

começo automático

<add name="{yourapppoolname}" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" startMode="AlwaysRunning" />

preloadEnabled

<site name="YOURSITENAMEHERE" id="4″>
  <application path="/" applicationPool="YOURAPPPOOL" preloadEnabled="true">
  <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\YOURSITENAME" />
  </application>
</site>
Oliver
fonte