Uma observação pequena, mas importante:o InProc não pode ser usado em um farm, como o nome sugere, ele é executado no processo w3wp atual e não pode ser compartilhado em um farm. StateServer é um serviço do Windows, portanto, a velocidade de uso do StateServer depende da velocidade da máquina em que o serviço stateserver está sendo executado, é apenas memória. É claro que o SQL precisa gravar os dados e recuperá-los, o que provavelmente é mais lento do que apenas a memória.
Daqui:
- Em processo. Em processo terá melhor desempenho porque a memória de estado da sessão é mantida dentro do processo ASP.NET. Para aplicativos da Web hospedados em um único servidor, aplicativos nos quais o usuário tem garantia de ser redirecionado para o servidor correto ou quando os dados do estado da sessão não são críticos (no sentido de que podem ser reconstruídos ou preenchidos novamente) , este é o modo a ser escolhido.
- Fora de processo. Este modo é melhor usado quando o desempenho é importante, mas você não pode garantir de qual servidor um usuário solicitará um aplicativo. Com o modo fora de processo, você obtém o desempenho de leitura da memória e a confiabilidade de um processo separado que gerencia o estado de todos os servidores.
- SQL Server. Esse modo é melhor usado quando a confiabilidade dos dados é fundamental para a estabilidade do aplicativo, pois o banco de dados pode ser agrupado para cenários de falha. O desempenho não é tão rápido quanto fora do processo, mas a compensação é o nível mais alto de confiabilidade.