我从带有框架 4.0 的 Visual Studio 2010 直接运行的非常简单的 Web 应用程序收到以下错误。
“/”应用程序中的服务器错误。
视图状态 MAC 验证失败。如果此应用程序由 Web Farm 或集群托管,请确保配置指定相同的 validationKey 和验证算法。AutoGenerate 不能在集群中使用。
这是我的应用程序文件
网络配置
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<!--<machineKey validationKey="08367F8C07194695F9714CB86778E9031DFAC34ECAE8DE9944CE7E765EB8B6F56D0DDE9C95639F01DF94597D4FFFF42BFCDB0A71544755C70683D6B95D3D3E5B" decryptionKey="DF5FA3F9EA83B31D9BF1381539CD90E3D4AEA74FEE490E5C1B0A160A4CCA7DA2" validation="SHA1" decryption="AES" />-->
<pages enableViewState="false"></pages>
</system.web>
</configuration>
默认.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Test.Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server" method="post" action="info.aspx">
<div>
<input type="hidden" name="data" value="this is post data" />
<input type="submit" name="Submit" value="Submit" />
</div>
</form>
</body>
</html>
信息.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Test
{
public partial class info : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string x = Request.Form["data"];
}
}
}
我尝试了通过互联网提供的所有可能的解决方案,但徒劳无功。
- 添加机器密钥{无效}
- 添加 enableViewState="false" {无效}
我拼命想了解为什么会出现这种行为?