Symptoms
When accessing the out-of-the-box reports via the K2 Workspace, you can run a report (for example, Process Overview) and it will render properly. However, for a report that generates hyperlinks to click on for additional report data (like the Process Overview), you get the following error:
"Server Error in '/Workspace' Application - Runtime Error"
Diagnoses
In the Application event log, the following error occurs: Viewstate verification failed. Reason: The viewstate supplied failed integrity check.
This is due to mismatched machine keys on the K2 servers.
Resolution
From Microsoft documentation: "If your application is installed in a Web farm, you need to change the validationKey from AutoGenerate,IsolateApps to a specific manually generated key value." Please see MSDN article "How To: Configure MachineKey in ASP.NET 2.0" for details on how to do this.
Specifically, you will want to make the changes in the web.config file located on each Workspace server at einstalldir]k2 blackpearlWorkspaceSite. This will scope the change to Workspace only.
If you deploy your application in a Web farm, you must ensure that the configuration files on each server share the same value for validationKey and decryptionKey, which are used for hashing and decryption respectively. This is required because you cannot guarantee which server will handle successive requests.
With manually generated key values, the <machineKey> settings should be similar to the following example.
<machineKey
validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7
AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
validation="SHA1"
decryption="AES" />
If you want to isolate your application from other applications on the same server, place the <machineKey> in the Web.config file for each application on each server in the farm. Ensure that you use separate key values for each application, but duplicate each application's keys across all servers in the farm.
You will need to create a key manually, then add it to the workspace web.config file on each workspace WFE.