C# 更改类名会引发Viewstate错误
我必须在一台外国机器上的aspx文件中编写一个小应用程序 为了获得正确的参考资料等,我选择了一个aspx页面,该页面已经开始工作,并且与想要的功能只有一些区别 所以我复制了文件并做了修改。这一切都很好,直到我在aspx中更改类名。这很好:C# 更改类名会引发Viewstate错误,c#,asp.net,sharepoint,viewstate,C#,Asp.net,Sharepoint,Viewstate,我必须在一台外国机器上的aspx文件中编写一个小应用程序 为了获得正确的参考资料等,我选择了一个aspx页面,该页面已经开始工作,并且与想要的功能只有一些区别 所以我复制了文件并做了修改。这一切都很好,直到我在aspx中更改类名。这很好: <%@ Assembly Name="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Assembly Name="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Page
Language="C#"
MasterPageFile="/_catalogs/masterpage/my.master"
Debug="true"
AutoEventWireup="true"
ClassName="namespace.oldclassname"
%>
但是更改类名:这就是剩下的所有内容,文件中没有其他行,我仍然得到这个错误
<%@ Assembly Name="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Page
Language="C#"
MasterPageFile="/_catalogs/masterpage/my.master"
Debug="true"
AutoEventWireup="true"
ClassName="namespace.newclassname"
%>
导致此错误的原因:
viewstate MAC验证失败。如果此应用程序由
Web场或群集,请确保配置指定
相同的validationKey和验证算法。无法自动生成
可以在集群中使用
我找到了很多关于这个错误的来源,但是没有一个是特定于类的。
此页面位于SharePoint环境中,但我认为这不是SharePoint特有的问题。是否验证了.cs文件和.designer.cs文件中的名称?这些文件通常不会自动更改。没有.cs文件。所有代码都是在aspx文件中使用为什么需要更改ClassName属性来完成的?您可以完全删除它。MSDN声明一个字符串,指定请求页面时将动态编译的页面类的名称。此值可以是任何有效的类名,并且可以包括完全限定的类名。如果未指定此属性的值,则编译页面的类名基于页面的文件名,并使用默认命名空间ASP。。为什么标准名称约定不能满足您的需要?删除它会导致相同的异常