Mapeamentos do manipulador do IIS

2

Dado que vários mapeamentos do manipulador são configurados para manipular uma solicitação, no IIS, qual é o algoritmo para determinar qual deles é usado para atender à resposta?

    
por frogstarr78 25.03.2011 / 22:00

1 resposta

3

Suponho que você esteja perguntando sobre os Mapeamentos do gerenciador do IIS7.

Oculto no modo de exibição no Gerenciador do IIS há um atributo preCondition para cada mapeamento de manipulador. Por exemplo, aqui está um trecho de applicationHost.config para todos os diferentes manipuladores de página que uma página .aspx pode ter (removi alguns atributos para manter as coisas concisas):

<add name="PageHandlerFactory-ISAPI-4.0_32bit" path="*.aspx" 
     preCondition="classicMode,runtimeVersionv4.0,bitness32" />
<add name="PageHandlerFactory-ISAPI-4.0_64bit" path="*.aspx" 
     preCondition="classicMode,runtimeVersionv4.0,bitness64" />
<add name="PageHandlerFactory-Integrated-4.0" path="*.aspx" 
     preCondition="integratedMode,runtimeVersionv4.0" />
<add name="PageHandlerFactory-Integrated" path="*.aspx" 
     preCondition="integratedMode" />
<add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" 
     preCondition="classicMode,runtimeVersionv2.0,bitness32" />
<add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx" 
     preCondition="classicMode,runtimeVersionv2.0,bitness64" />

Quando uma solicitação .aspx é passada pelo pipeline do IIS, somente o manipulador que corresponde ao preCondition é usado.

O preConditions geralmente mapeia para a configuração do pool de aplicativos em que o site ou aplicativo é executado.

Então, se eu tivesse um site em execução em um pool de aplicativos configurado como:

.NET Framework Version [managedRuntimeVersion]     = v2.0
Enable 32-Bit Applications [enable32BitAppOnWin64] = True
Managed Pipeline Mode [managedPipelineMode]        = Classic

Se Default.aspx foi solicitado, o manipulador escolhido para processar essa solicitação seria:

PageHandlerFactory-ISAPI-2.0

Há um ótimo artigo que explica preConditions com muito mais detalhes aqui:

Achtung! IIS7 Preconditions

Esqueci de dizer que a ordem dos mapeamentos do manipulador também é uma consideração, especialmente para mapeamentos com e sem curinga. A ordem deles pode ser visualizada / alterada no Gerenciador do IIS abrindo o recurso Mapeamentos do Manipulador para um site e, em seguida, clicando no link Visualizar Lista Ordenada no painel Ações à direita. Nesta visão, você pode alterar a ordem de processamento dos manipuladores.

    
por 26.03.2011 / 12:02