我有一个应用程序,其中包含引用300,000个客户的数据。当用户进行搜索时,结果通常比我们的MaxRequestlength所允许的要大,我们通过两种方法来处理这个问题:我们将MaxRequestLength增加到102400 (KB),并要求用户提供两个名字字母和两个姓氏字母,以限制返回的客户记录的绝对数量。这可以防止我们超过MaxRequestLength限制。
我想知道有没有人知道这是不是一种特别好的方法,MaxRequestLength可能或应该有多大的限制,以及在这种情况下有哪些其他选择可能有用。
发布于 2009-09-24 19:37:48
我见过的大多数web应用程序都通过返回分页列表来处理这个问题,并且只显示结果的第一页。
在使用ORM的现代实现中,"Skip“和"Take”运算符用于仅检索给定页面所需的那些记录。
因此,任何给定的请求都不会超过一个页面上的记录数。
发布于 2009-09-24 19:37:34
我建议对结果进行分页,而不是显示所有内容。我还建议添加多个搜索域,允许用户进一步过滤他们的结果。这将允许您的用户更快地找到他们正在查找的内容。
发布于 2009-09-24 19:55:34
正如您可以从我的评论中猜到的那样,我认为MaxRequestLength只限制了请求的大小(->从客户端/浏览器发送到服务器的数据量)。
如果你超过了这个限制,那么这可能意味着你有一个巨大的ViewState,它会随每个响应一起发送。ViewState存储在页面上的一个隐藏字段中,并随每个PostBack一起发送回服务器(这就是MaxRequestLength设置可以发挥作用的地方)。您可以通过在web浏览器中查看页面的源代码并查找名称为"__VIEWSTATE“和大型字符串值的隐藏输入元素来轻松地检查这一点。
如果是这种情况,您应该尝试减小ViewState的大小,例如
在您的控件(GridView或其他任何控件)上设置为“false”,并在每个服务器上重新绑定控件(这是推荐的approach)
https://stackoverflow.com/questions/1473726
复制相似问题