Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net iOS 7下Safari的请求大小限制是什么?_Asp.net_Ios_Safari - Fatal编程技术网

Asp.net iOS 7下Safari的请求大小限制是什么?

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的出现,情况发生了变化是否有人知

我有几个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,两者都是视网膜。