2010-04-30 6 views
0

J'utilise ObjectDataSource, ListView, CustomPagingOutOfMemory pendant la recherche

Si le nombre total de lignes est trop grand, je suis exception OutOfMemory, il semble que cela a causé par un tableau, je ne comprends pas, parce que nombre total de lignes ne devrait jamais faire un tableau à remplir avec des éléments, la taille de la page faire !!

Ceci est l'enregistreur.

************ # 3 EXCEPTION: 4/30/2010 21:43:07 System.Web.HttpUnhandledException: Exception de type 'System.Web.HttpUnhandledException' a été levée . ---> System.OutOfMemoryException: Exception de type 'System.OutOfMemoryException' a été levée. à System.Web.UI.WebControls.ListView.CreateChildControls() à System.Web.UI.Control.EnsureChildControls() à System.Web.UI.WebControls.ListView.get_Controls() à System.Web.UI .Control.LoadChildViewStateByIndex (ArrayList childState) à System.Web.UI.Control.LoadViewStateRecursive (Object savedState) à System.Web.UI.Control.LoadChildViewStateByIndex (ArrayList childState) à System.Web.UI.Control.LoadViewStateRecursive (objet savedState) à System.Web.UI.Control.LoadChildViewStateByIndex (ArrayList childState) à System.Web.UI.Control.LoadViewStateRecursive (Object savedState) à System.Web.UI.Control.LoadChildViewStateByIndex (ArrayList childState) à System.Web.UI.Control.LoadViewStateRecursive (Object savedState) à System.Web.UI.Control.LoadChildViewStateByIndex (ArrayList childState) à System.Web.UI.Control.LoadViewStateRecursive (Object savedState) à System.Web .UI.Control.LoadChildViewStateByIndex (ArrayList childState) à System.Web.UI.Control.LoadViewStateRecursive (Object savedState) à System.Web.UI.Page.LoadAllState() à System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) --- Fin de trace de pile d'exception interne --- à System.Web.UI.Page.HandleError (exception e) à System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoin t) à System.Web.UI.Page.ProcessRequest (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) à System.Web.UI.Page.ProcessRequest() à System.Web.UI.Page.ProcessRequestWithNoAssert (HttpContext contexte) à System.Web.UI.Page.ProcessRequest (contexte HttpContext) à ASP.default_aspx.ProcessRequest (contexte HttpContext) dans c: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Fichiers ASP.NET temporaires \ flickrdemo \ 15752207 \ c63ea96c \ App_Web__8yxn9sb.0.cs: ligne 0 à System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() à System.Web.HttpApplication.ExecuteStep (étape IExecutionStep, Boolean &

completedSynchronously)
+1

qu'est-ce que vous appelez "too big"? 100? 1000? 100000000? –

+1

Assurez-vous que vous n'avez pas une boucle sans fin ou un appel récursif qui ne se termine pas correctement. – AaronS

+0

c'est 100000000 et s'il y a une boucle sans fin, pourquoi cela fonctionne bien avec des données plus petites – Tony

Répondre

0

Je l'ai maintenant, il semble que derrière le sens ObjectDataSource crée un tableau avec la taille des lignes au total, dans ce cas trop grand, je le sais parce que

1- DataPager est rendu le nombre des pages basées sur Datasource. 2- Il y a un grand tableau créé. 3- et non, il n'y a pas de grosses données récupérées seulement 15 éléments.

Je ne peux pas vérifier cette explication, mais j'ai mis une limite à un nombre total de travail.

+0

Ne mettez pas de pansement. Il reviendra et vous mordra. Publiez quelques exemples de code ici et nous pourrions être en mesure d'aider. L'ODS ne doit pas créer un tableau de nombre total d'enregistrements de taille. –

Questions connexes