Vamos a uma dica rápida que pode te poupar um pouco de dor de cabeça. Recentemente, eu migrei uma aplicação ASP.NET bastante grande para o IIS7.

Como forma de estudo eu mantive o Managed Pipeline Mode do website como "Integrated". E isso implica em algumas mudanças de comportamento da nossa aplicação. A primeira delas é que nossa aplicação passa a usar a tag <system.webServer>.

Como eu disse minha aplicação é um pouco grande. E estamos usando um HttpModule para fazer algumas operações em um conjunto de requisições.

O problema começou com um comportamento da aplicação incomum:

O meu HttpModule era executado, mas não era executado para todas as 
requisições e essa variável me deixava meio perdido pois uma hora a classe
era chamada e em outras não. E como eu já tinha a aplicação rodando
estava um pouco complicado de izolar o erro.

Fazendo algumas pesquisas encontrei o atributo runAllManagedModulesForAllRequests. Que por padrão vem false. Bastou então acrescentar o seguinte código ao web.config para a aplicação ter o comportamento esperado.