Asp.net iOS 7下Safari的请求大小限制是什么?
我有几个C#.Net Webforms应用程序,偶尔可以开发一个相当大的viewstate。在过去,使用iOS 6时,Safari会在回发时截断viewstate,导致应用程序抛出异常。当然,所有其他浏览器都不受影响。我可以重现这个问题,但并不总是可靠的。对于iOS 6下的Safari是在32k标记后还是在64k标记后切断post参数,我发现了相互矛盾的意见。将viewstate分解成块也有帮助。整个帖子的大小才是最重要的 官方的规格似乎是个谜。也许随着iOS 7的出现,情况发生了变化是否有人知道此限制是否仍然存在,以及它是什么?Asp.net iOS 7下Safari的请求大小限制是什么?,asp.net,ios,safari,Asp.net,Ios,Safari,我有几个C#.Net Webforms应用程序,偶尔可以开发一个相当大的viewstate。在过去,使用iOS 6时,Safari会在回发时截断viewstate,导致应用程序抛出异常。当然,所有其他浏览器都不受影响。我可以重现这个问题,但并不总是可靠的。对于iOS 6下的Safari是在32k标记后还是在64k标记后切断post参数,我发现了相互矛盾的意见。将viewstate分解成块也有帮助。整个帖子的大小才是最重要的 官方的规格似乎是个谜。也许随着iOS 7的出现,情况发生了变化是否有人知
我正在考虑重写我继承的应用程序中的许多页面,并试图找出我需要多小的视图状态才能让iPad和iPhone用户满意。当然,它们可以在MVC中重写,但这需要相当多的努力。它在.NET中设置了一个页面来测试这一点。它包含一个按钮,将1K垃圾添加到Viewstate,然后以字节为单位打印出当前大小。在iOS 6和iOS 7上的Safari中,我能够将viewstate扩展到超过100K,而没有任何不良影响。无论我是否将viewstate设置为使用maxPageStateFieldLength将其自身拆分为更小的块,这都是一样的 但是,我仍然能够通过大量使用浏览器后退按钮使页面在iOS 6下抛出无效的viewstate异常。这可能是因为Safari mobile过于积极地缓存和使用旧请求。不过,在iOS 7中,这个特定的错误似乎已经得到了缓解。现在,在某些情况下,它会弹出一个对话框,询问您是否要重新提交页面。此时不会触发错误的viewstate错误
因此,请求大小本身似乎没有限制。在Safari mobile和.Net下触发无效的viewstate异常需要这一因素和其他因素的组合。就像iOS 8.1.1的更新一样,任何人可能会偶然发现这一点。在我写这篇文章的时候,viewstates超过了200K,这一直导致Safari和Chrome在我的经历中崩溃。这是使用iTouch和iPad Mini,两者都是视网膜。