我维护的其中一个站点在很大程度上依赖于ViewState的使用(它不是我的代码)。 但是,在ViewState特别ViewState某些页面上,Safari会抛出"Validation of viewstate MAC failed"错误。

这似乎只发生在Safari中。 Firefox,IE和Opera都在同一场景中成功加载。

===============>>#1 票数:5

虽然我是Channel 9解决方案的第二名,但也要注意,在某些托管环境中,Safari不被视为高级浏览器。 您可能需要将其添加到应用程序的browscap中,以便使用一些ASP.Net功能。

这是我们使用ASP Menu控件的客户端网站遇到的一些令人头疼的根本原因。

===============>>#2 票数:3

我的第一个停靠点是浏览页面上的元素并查看哪些控件:

  1. 关闭ViewState时仍然有效
  2. 可以移出页面并进入AJAX调用,以便在需要时加载

如果失败了,这就是免责声明 - 我从来没有在面向网站的网站上使用过这个解决方案 - 但在过去,我想在有限的受众应用程序中消除大量的ViewStates,我已经在会话中存储了ViewState。

它对我有用,因为对内存的打击对于用户数量并不重要,但是如果你运行一个相当受欢迎的网站,我不会推荐这种方法。 但是,如果Session解决方案适用于Safari,您可以始终检测用户代理并适当地捏造。

===============>>#3 票数:2 已采纳

我一直在对此进行一些研究,虽然我不完全确定它的原因我认为这是因为Safari没有返回完整的结果集(因此裁剪它)。

我一直在与另一个开发人员讨论,并在Channel 9上发现了以下帖子,它建议使用SQL State服务来存储viewstate,避免回发问题和页面大小。

http://channel9.msdn.com/forums/TechOff/250549-ASPNET-ViewState-flawed-architecture/?CommentID=270477#263702

这看起来像是最好的解决方案吗?

  ask by Anthony Main translate from so

未解决问题?本站智能推荐:

关注微信公众号