You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plesk共享主机ViewState MAC验证失败问题求助

解决Plesk共享主机上ViewState MAC验证失败问题

核心解决方案:手动配置自定义Machine Key

共享主机环境下,服务器可能因应用池回收、负载均衡节点切换等原因自动更换Machine Key,导致ViewState MAC验证失败。无需依赖Plesk提供密钥,你可以自行在web.config中配置固定的Machine Key:

  1. 生成专属Machine Key
    你可以通过两种方式生成密钥:

    • 本地搭建ASP.NET项目,打开IIS管理器中站点的「Machine Key」功能,点击「生成密钥」后复制对应值;
    • 用C#控制台程序生成:
      using System;
      using System.Web.Security;
      
      class Program
      {
          static void Main()
          {
              Console.WriteLine("validationKey: " + MachineKey.GenerateKey(64));
              Console.WriteLine("decryptionKey: " + MachineKey.GenerateKey(32));
          }
      }
      
  2. 写入web.config配置
    将生成的密钥替换到以下配置块中,添加到网站根目录web.config的<system.web>节点内:

    <system.web>
      <machineKey 
        validationKey="你的生成的validationKey" 
        decryptionKey="你的生成的decryptionKey" 
        validation="SHA1" 
        decryption="AES"
      />
    </system.web>
    

    配置完成后,所有页面会使用固定密钥验证ViewState,彻底解决服务器密钥变更导致的验证失败问题。

其他辅助排查优化点

  • 控制ViewState大小:如果ViewState过大,可能在传输中被截断或篡改。可开启ViewState压缩,或优化页面移除不必要的ViewState数据;
  • 检查ViewStateMode设置:确保需要ViewState的页面未被错误设置为ViewStateMode="Disabled";
  • 临时应急方案(不推荐长期使用):若需快速恢复服务,可在<system.web>节点添加<pages enableViewStateMac="false" />,但此设置会降低安全性,仅作临时过渡。

内容的提问来源于stack exchange,提问作者Pranil Dukare

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 18:20:32