Question

J'ai trouvé beaucoup d'avertissements 8l1n d'objets dans les journaux non aliéné ULS SharePoint. La chose intéressante est que tout le tracé de la pile ne montre rien dans mon code. Je ne sais pas ce qu'il faut chercher dans ce cas? Peut-il être une erreur de configuration qui a conduit à cela?

Comment puis-je éviter cet avertissement?

journal ULS ci-dessous:

An SPRequest object was not disposed before the end of this thread.  To avoid wasting system resources, dispose of this object or its parent (such as an SPSite or SPWeb) as soon as you are done using it.  This object will now be disposed.  Allocation Id: {DBFA1F95-40DF-4AB6-BE88-3AE39F7E4E1F}  This SPRequest was allocated at    at Microsoft.SharePoint.Library.SPRequest..ctor()     at Microsoft.SharePoint.SPGlobal.CreateSPRequestAndSetIdentity(Boolean bNotGlobalAdminCode, String strUrl, Boolean bNotAddToContext, Byte[] UserToken, String userName, Boolean bIgnoreTokenTimeout, Boolean bAsAnonymous)     at Microsoft.SharePoint.SPWeb.InitializeSPRequest()     at Microsoft.SharePoint.SPWeb.EnsureSPRequest()     at Microsoft.SharePoint.SPWeb.get_Request()     at Microsoft.SharePoint.SPWeb.get_All...  
06/03/2009 10:21:05.10* w3wp.exe (0x170C)                       	0x10F8	Windows SharePoint Services   	General                       	8l1n	High    	...Properties()     at Microsoft.SharePoint.ApplicationPages.PermissionSetupPage.GetParentWebAssociatedGroups()     at Microsoft.SharePoint.ApplicationPages.PermissionSetupPage.OnLoad(EventArgs e)     at System.Web.UI.Control.LoadRecursive()     at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)     at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)     at System.Web.UI.Page.ProcessRequest()     at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)     at System.Web.UI.Page.ProcessRequest(HttpContext context)     at ASP._layouts_permsetup_aspx.ProcessRequest(HttpContext context)     at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.H...
06/03/2009 10:21:05.10* w3wp.exe (0x170C)                       	0x10F8	Windows SharePoint Services   	General                       	8l1n	High    	...ttpApplication.IExecutionStep.Execute()     at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)     at System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(Exception error)     at System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)     at System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)     at System.Web.HttpRuntime.ProcessRequestNoDemand(HttpWorkerRequest wr)     at System.Web.Hosting.ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)
Était-ce utile?

La solution

Oui, parfois Microsoft ne suit pas ses propres meilleures pratiques. Je l'ai mentionné ici: Mise au rebut des spwebs créé à l'aide SPSite OpenWeb

Il n'y a rien que vous pouvez vraiment faire à ce sujet.

Autres conseils

Vous devriez vérifier votre code et jetez le SPSite, SPWeb (et d'autres), vous vous créez (comme dans "nouvelle SPObject (url)" et sites.OpenWeb ()). Ces objets contiennent des objets SPRequest non gérés qui ne seront pas automatiquement disposé.

Pour vous ASSIS dans ce processus, vous devez utiliser SPDisposeCheck (i généralement définie SPDisposeCheck pour exécuter automatiquement quand je construis mon code).

sur MSDN livre blanc qui peut vous aider futher. Sachez que tous les objets SPSite et SPWeb doivent être éliminés. Le SPSite de son et SPWeb pris de SPContext.Current ne devrait normalement pas être mis au rebut. Pour plus de conseils sur le moment pas de disposer, voir Roger Agneaux "ne pas des conseils Éliminez".

Note: l'avertissement ci-dessus ne doit pas être confondu avec le « Potentiallt nombre excessif d'objets SPRequest .. » avertissement dans le journal ULS. Cet avertissement ne, juste que vous ne sont pas disposés pas nécessairement vos objets ouverts beaucoup d'entre eux (comme lorsque vous faites une boucle à travers les réseaux actuels). Cet avertissement peut être atténué par la mise en place du seuil à une valeur plus grande:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Outils partagés du serveur Web Extensions \ HeapSettings

    LocalSPRequestWarnCount = 50

Pour en savoir plus:

Meilleures pratiques: Utilisation Disposable Windows SharePoint Services Objets

automatiser SharePoint revues de code Dispose () avec SPDisposeCheck

Dépannage SPSite / fuites de SPWeb dans WSS v3 et MOSS 2007

SharePoint 2007 et WSS 3.0 modèles Éliminer par exemple

HTH Anders Rask

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top