SharePoint SPRequest Leak - PullRequest
       4

SharePoint SPRequest Leak

2 голосов
/ 21 ноября 2011

Я получаю это странное сообщение в ULS с тех пор, как перенес код в SharePoint 2010.

Вот сообщение:

w3wp.exe (0x1320)
0x1168 SharePoint Foundation
Общий
90hv
Неожиданный

Обнаружено использование SPRequest для ранее закрытого объекта SPWeb. Пожалуйста, закройте объекты SPWeb, когда вы закончите со всеми объектами, полученными из них, но не раньше.

Трассировка стека:
в Microsoft.SharePoint.SPWorkItem.FetchData ()
в Microsoft.SharePoint.SPWorkItem.retrieveSchema (схема SchemaIndex)
в Microsoft.SharePoint.SPWorkItem.get_SiteId ()
в Microsoft.SharePoint.SPWorkItem.Delete ()
в Microsoft.SharePoint.Workflow.SPWinOeHostServices.WorkItemDequeue (транзакция txn, Object [] transData)
в Microsoft.SharePoint.Workflow.SPPendingWorkBatch.Commit (транзакция транзакции, элементы ICollection)
в System.Workflow.Runtime.WorkBatch.PendingWorkCollection.Commit (транзакция транзакции)
в System.Workflow.Runtime.WorkBatch.Commit (транзакция транзакции)
в System.Workflow.Runtime.Hosting.WorkflowCommitWorkBatchService.CommitWorkBatch (CommitWorkBatchCallback commitWorkBatchCallback)
в System.Workflow.Runtime.Hosting.DefaultWorkflowCommitWorkBatchService.CommitWorkBatch (CommitWorkBatchCallback commitWorkBatchCallback)
в System.Workflow.Runtime.WorkflowExecutor.CommitTransaction (Activity activityContext)
at System.Workflow.Runtime.WorkflowExecutor.Persist (активность dynamicActivity, логическая разблокировка, логическая необходимость в компенсации)
в System.Workflow.Runtime.WorkflowExecutor.System.Workflow.ComponentModel.IWorkflowCoreRuntime.PersistInstanceState (Activity Activity)
в System.Workflow.ComponentModel.Activity.MarkClosed ()
в System.Workflow.ComponentModel.Activity.ReleaseLockOnStatusChange (IActivityEventListener 1 eventListener)<br> at System.Workflow.ComponentModel.FaultAndCancellationHandlingFilter.SafeReleaseLockOnStatusChange(ActivityExecutionContext context)<br> at System.Workflow.ComponentModel.FaultAndCancellationHandlingFilter.OnEvent(Object sender, ActivityExecutionStatusChangedEventArgs e)<br> at System.Workflow.ComponentModel.ActivityExecutorDelegateInfo 1.ActivityExecutorDelegateOperation.Run (IWorkflowCoreRuntime workflowCoreRuntime)
в System.Workflow.Runtime.Scheduler.Run ()
в System.Workflow.Runtime.WorkflowExecutor.RunScheduler ()
в System.Workflow.Runtime.WorkflowExecutor.RunSome (объект игнорируется)
в System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService.WorkItem.Invoke (служба WorkflowSchedulerService)
в System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService.RunOne (Guid workflowInstanceId)
в System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService.RunWorkflow (Guid workflowInstanceId)
в Microsoft.SharePoint.Workflow.SPWinOeHostServices.Send (рабочий процесс SPWorkflow, рабочий процесс SPWinOeWorkflow, SPWorkflowEvent e)
в Microsoft.SharePoint.Workflow.SPWinOeEngine.RunWorkflow (хост SPWorkflowHostService, рабочий процесс SPWorkflow, коллекция 1 events, TimeSpan timeOut)<br> at Microsoft.SharePoint.Workflow.SPWorkflowManager.RunWorkflowElev(SPWorkflow workflow, Collection 1 событий, SPWorkflowRunOptionsInternal runOptions)
в Microsoft.SharePoint.Workflow.SPWorkflowManager.StartWorkflowElev (Контекст объекта, связь SPWorkflowAssociation, DateTime elevationTimeUtc, SPWorkflowEvent startEvent, SPWorkflowRunOptions runOptions)
в Microsoft.SharePoint.Workflow.SPWorkflowAutostartEventReceiver. <> c_ DisplayClass1.b _0 (SPSite superUserSite, SPWeb superUserWeb)
в Microsoft.SharePoint.SPSecurity. <> c_ DisplayClassf.b _e ()
в Microsoft.SharePoint.SPSecurity. <> c_ DisplayClass4.b _2 ()
в Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess (CodeToRunElevated secureCode)
в Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges (WaitCallback secureCode, Object param)
в Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges (CodeToRunElevated secureCode)
в Microsoft.SharePoint.Workflow.SPWorkflowAutostartEventReceiver.AutoStartWorkflow (свойства SPItemEventProperties, Boolean bCreate, Boolean bChange, AssocType atyp)
в Microsoft.SharePoint.Workflow.SPWorkflowAutostartEventReceiver.ItemUpdated (свойства SPItemEventProperties)
в Microsoft.SharePoint.SPEventManager.RunItemEventReceiver (получатель SPItemEventReceiver, свойства SPUserCodeInfo userCodeInfo, свойства SPItemEventProperties, контекст SPEventContext, строка String receiverData)
в Microsoft.SharePoint.SPEventManager.RunItemEventReceiverHelper (Приемник объекта, SPUserCodeInfo userCodeInfo, Свойства объекта, контекст SPEventContext, Строковый получательData)
в Microsoft.SharePoint.SPEventManager. <> c_ DisplayClassc`1.b _6 ()
в Microsoft.SharePoint.SPSecurity.RunAsUser (SPUserToken userToken, логический bResetContext, код WaitCallback, параметр объекта)
в Microsoft.SharePoint.SPEventManager.InvokeEventReceivers [ReceiverType] (SPUserToken userToken, Guid tranLockerId, RunEventReceiver runEventReceiver, объектные приемники, свойства объекта, логический checkCancel)
в Microsoft.SharePoint.SPEventManager.InvokeEventReceivers [ReceiverType] (Byte [] userTokenBytes, Guid tranLockerId, RunEventReceiver runEventReceiver, Приемники объектов, Свойства объекта, логический checkCancel)
в Microsoft.SharePoint.SPEventManager.HandleEventCallback [ReceiverType, PropertiesType] (объект callbackData)
в Microsoft.SharePoint.Utilities.SPThreadPool.WaitCallbackWrapper (состояние объекта)
в System.Threading.ExecutionContext.runTryCode (объект userData)
в System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup (код TryCode, код возврата CleanupCode, объект userData)
в System.Threading.ExecutionContext.Run (ExecutionContextexecutionContext, обратный вызов ContextCallback, состояние объекта)
в System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal (_ThreadPoolWaitCallback tpWaitCallBack)
в System.Threading._ThreadPoolWaitCallback.PerformWaitCallback (состояние объекта)

Это сообщение появляется всякий раз, когда я запускаю рабочий процесс, оно не оказывает вредного влияния на рабочий процесс.

Пожалуйста, дайте мне знать, что вы, ребята, знаете.

Ответы [ 2 ]

0 голосов
/ 24 июля 2013

Когда вы внимательно прочитаете исключение, вы увидите, что не забываете избавиться от объекта. Вы ссылаетесь на него после того, как он был уничтожен!

Вы можете узнать больше об этом у немецкого Гуру SharePoint Стефан Госснер

0 голосов
/ 23 ноября 2011

Вот руководство от MS по правильному удалению объектов SharePoint. Хорошие шансы, что если вы будете следовать всем этим (правильно), то ваш код будет в порядке. Инструмент SPDisposeCheck также может быть полезен, хотя, по моему опыту, вам все равно нужно знать все правила удаления. Этот инструмент выполняет только статический анализ и может возвращать множество возможных проблем, которые на самом деле могут подойти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...