2009-09-23 11 views
2

Dans une application Web ASP.NET, j'ai une page avec un panneau de mise à jour. Dans ce panneau de mise à jour, l'utilisateur peut cliquer sur une icône pour ajouter ou supprimer des contrôles à un répéteur.La longueur de la requête augmente chaque fois que le panneau de mise à jour est rechargé

Je mets un point d'arrêt dans le Page.Load du panneau de mise à jour et vérifié le HttpContext.Current.Request.ContentLength chaque fois que le panneau de mise à jour est utilisé. La taille de la requête augmente à chaque fois qu'une demande est envoyée. La chose amusante est qu'elle augmente même en taille lorsque l'utilisateur supprime les contrôles (de sorte que la page devient à nouveau "plus légère"). En fin de compte, cela me donne l'erreur suivante: longueur maximale de la requête.

Les solutions autour du Web suggèrent d'augmenter la valeur maximumRequestLength. Ce n'est pas une option parce que je vais atteindre le maximum de toute façon.

J'ai même remarqué que la longueur de la requête augmente de façon exponentielle.

Quelqu'un a-t-il eu la même expérience?

Répondre

2

Vous ajoutez probablement constamment des attributs à vos contrôles. Quelque chose comme sur page_prerender buttonSave.Attributes ("onclick") + = "this.className = 'buttonhide';"

+0

C'était effectivement le cas. Chaque fois qu'il y avait une publication partielle, nous avons ajouté des attributs à l'un de nos contrôles, ce qui ne cessait de le rendre de plus en plus gros. Et cela a également rendu l'état de vue de plus en plus grand, ce qui a rendu la demande plus importante. – Peter

1

En l'air, on dirait que vous pourriez rencontrer un problème ViewState ici. Si la longueur augmente indépendamment de ce qui se passe, je suspecte que les éléments sont ajoutés dans ViewState et ne sont pas supprimés. Ce qui est drôle, c'est que vous n'avez pas besoin de ViewState, mais les gens le laissent allumée.

0

Il semble que vous ayez une référence statique au niveau de la requête. J'ai déjà vu cela dans une page de base. Ce qui se passe, c'est que rien ne peut être éliminé et qu'il ne fait que croître et grandir.