Da un pò di giorni, il mio sito mi ritorna ogni tanto questa eccezione:

HttpException (0x80004005): Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.

Mi sono documentato un pò in rete, ed ho trovato questo feedback sul sito Microsoft. Sembra infatti che questo tipo di errore, esca fuori se si utilizzano uno di questi controlli: GridView, DetailsView o FormView e le relative proprietà DataKeyNames. Questo perchè quei controlli, se hanno la proprietà DataKeyNames valorizzata, richiedono che il ViewState sia criptato. Il meccanismo di ASP.NET, per criptare il ViewState aggiunge questi due campi hidden in fondo alla pagina:

<input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" />

Solo che, questi campi, in pagine un pò corpose, possono non essere renderizzati e se viene fatto un postback prima che questi vengano renderizzati, il browser inizia il postback senza di loro. Così facendo, senza quei controlli, ASP.NET non sa che il ViewState è stato criptato e causa l'eccezione che abbiamo descritto sopra.

Un modo per risolvere il problema è quello di settare le proprietà dell'elemento pages, enableEventValidation a false e viewStateEncryptionMode a "Never":

<pages enableEventValidation="false" viewStateEncryptionMode ="Never" />