1

フレームワーク 4.0 を使用して Visual Studio 2010 から直接実行された非常に単純な Web アプリケーションから、以下のエラーが表示されます。

「/」アプリケーションでサーバー エラーが発生しました。

ビューステート MAC の検証に失敗しました。このアプリケーションが Web ファームまたはクラスターによってホストされている場合は、構成で同じ validationKey と検証アルゴリズムが指定されていることを確認してください。AutoGenerate はクラスタでは使用できません。

ここに私のアプリケーションファイルがあります

web.config

<?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>

info.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" {動作しない} を追加しました

私は必死になぜこの振る舞いを理解しようとしていますか?

4

1 に答える 1

0

入力ではなく ASP.net の適切な非表示を使用してみましたか?

<asp:HiddenField ID="data" value="this is post data" runat="server" />
于 2013-09-23T16:28:11.323 に答える