1

我的 SharePoint 2010 应用程序陷入了这个视图状态问题。

目前我创建了一个自定义母版页,它使用名为 Navigation 的自定义控件。导航控件 HTML 仅包含 3 个隐藏字段以存储数据。

当我为我的站点应用母版页时,我创建了一个列表,然后将一个三态工作流添加到列表中。在 Add a Workflow 屏幕 (/_layouts/Addwrkfl.aspx) 中选择三态工作流后,单击 OK 提交。

然后我收到了这个错误信息

视图状态 MAC 验证失败。如果此应用程序由 Web Farm 或集群托管,请确保配置指定相同的 validationKey 和验证算法。AutoGenerate 不能在集群中使用。

堆栈跟踪:

[ViewStateException: Invalid viewstate. 
    Client IP: 192.168.149.149
    Port: 56086
    User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; InfoPath.3)
    ViewState: /wEWBAKi+o3/DAKVnOnXCwKa66m6DgKoxMKWBhUcn2XAshDSDMZdpDN35fWC8RHp
    Referer: `http://localhost/_layouts/Addwrkfl.aspx?List=%7B2897B53B%2D16AF%2D47A9%2DB963%2DC9501432C5CA%7D`
    Path: /_layouts/ItemRWfAssoc.aspx]
[HttpException (0x80004005): Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.]
   System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +148
   System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +10977361
   System.Web.UI.ClientScriptManager.EnsureEventValidationFieldLoaded() +205

*

我还删除了导航控件背后的所有代码,但问题仍然出现。似乎错误出现在执行任何 C# 代码之前。

如果我尝试从导航控件中删除 3 隐藏字段,问题就消失了。

任何人都可以帮助我解决这个问题吗?任何想法将不胜感激。

提前致谢。

仅供参考,我不使用 Web Farm 托管我的应用程序

4

1 回答 1

0

在我添加一些自定义委托控件以在母版页中运行后,我在我的 SP 2010 场上收到此错误。该控件具有服务器端文本框和其他一些 html 元素,当我将 asp:textbox 切换为 html 输入时,问题就消失了

于 2015-04-15T16:26:13.470 回答