ASP.NET úloha machineKey
Ak váš Asp.Net spustí program a zobrazí sa táto chyba: "Validate view status MAC failed." Ak je táto aplikácia hostovaná na sieťovej farme alebo klastri, uistite sa, že <machineKey> konfigurácia špecifikuje rovnaký validačný kľúč a validačný algoritmus. AutoGenerate sa nedá použiť v klastri. Aký je teda účel machineKeys, ak vaša aplikácia nepoužíva unified machineKey? Podľa štandardov MSDN: "Konfigurovať kľúče na šifrovanie a dešifrovanie údajov cookie autentifikačných formulárov a zobrazovania stavových údajov, ako aj na overenie identít stavu relácií mimo spracovania." Inými slovami, mnohé šifrovania Asp.Net závisia od hodnôt v machineKey, ako napríklad autentifikačný cookie Forms a šifrovanie ViewState. V predvolenom nastavení je konfigurácia Asp.Net dynamicky generovaná sama o sebe, ak je samozrejme v poriadku jeden server, ale ak je viacero serverov vyvažovaných záťažou, machineKey tiež používa metódu dynamického generovania, hodnota machinekey na každom serveri je nekonzistentná, čo vedie k nekonzistentným šifrovaným výsledkom, a nemôže zdieľať overovanie a ViewState, takže pre vyvažovanie záťaže viacerých serverov musí byť na každom mieste nakonfigurovaný rovnaký machineKey.
Algoritmus generovaný ASP.NET machineKey:
|