Acontece que em uma das páginas um relatório é gerado dinâmicamente, com base na pesquisa feita pelo usuário (Mês / Ano).
Cada registro deste relatório gera novos controles ASP.NET na página, (caixas de texto para que o usuário possa adicionar ou modificar informações).
O relatório gerava mais de 300 linhas, logo o número de controles .NET adicionados ultrapassava o limite suportado pela aplicação. Quando qualquer postback era feito na página, o erro abaixo acontecia:
Com um pouco de pesquisa podemos encontrar referências da microsoft a respeito desta restrição:
http://support.microsoft.com/kb/2661403
"Microsoft security update MS11-100 limits the maximum number of form keys, files, and JSON members to 1000 in an HTTP request. Because of this change, ASP.NET applications reject requests that have more than 1000 of these elements. HTTP clients that make these kinds of requests will be denied, and an error message will appear in the web browser. The error message will usually have an HTTP 500 status code. This new limit can be configured on a per-application basis. Please see the "Resolution" section for configuration instructions."
* O limite de chaves em um form, arquivos e membros JSON é, por default, 1000 em um request HTTP .
Para modificar este limite podemos adicionar ao web.config da aplicação:
<configuration>
<appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="1000" />
</appSettings>
</configuration>
Caso você esteja usando ASP.NET 1.1, ajuste o limite adicionando um valor DWORD para a seguinte chave de registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys
Para modificar o limite de membros JSON adicione o seguinte código:
<configuration>
<appSettings>
<add key="aspnet:MaxJsonDeserializerMembers" value="1000" />
</appSettings>
</configuration>


No comments:
Post a Comment