Quando o IIS gera automaticamente uma chave de máquina, ela é armazenada em HKEY_CURRENT_USER . Portanto, para compartilhar chaves de máquina geradas automaticamente, os aplicativos da web devem estar em execução como o mesmo usuário. Os detalhes estão em esta postagem no blog . O trecho relevante é:
The base machine key is stored in the registry in the following location:
HKCU\Software\Microsoft\ASP.NET.0.30319.0\AutoGenKeyV4
Note that this key sits in the HKEY_CURRENT_USER hive, so the generated machine key belongs to the user’s that runs the application profile. This means that if you have two applications in IIS which are running with the same process identity, they will use the same machine key!
No meu caso, os dois aplicativos da web estavam sendo executados em pools de aplicativos separados sob diferentes identidades. Portanto, eles geraram diferentes chaves de máquina. Nas minhas máquinas de desenvolvedores, elas estavam funcionando com a mesma identidade.
Ao colocar os dois aplicativos no mesmo pool de aplicativos (ou em ambos os pools de aplicativos com a mesma identidade), eles usaram a mesma chave de máquina gerada automaticamente.