2009-12-30 4 views
0

다른 셰어 포인트 이상한 오류가 발생했습니다. 내 워크 플로에서이 오류가 발생합니다.워크 플로에 대한 이벤트 수신자 컨텍스트가 유효하지 않습니다.

 System.InvalidOperationException: The event receiver context for Workflow is invalid. 
at Microsoft.SharePoint.SPEventReceiverDefinition.ValidContext()  at 
icrosoft.SharePoint.SPEventReceiverDefinition.ValidReceiverFields()  at Microsoft.SharePoint.SPEventReceiverDefinition.GetSqlCommandToAddEventReceivers(IList`1 erds)  at Microsoft.SharePoint.Workflow.SPWinOESubscriptionService.CommitNewSubscriptions(Transaction txn, IList`1 erds) 

onTaskChange 이벤트를 기다리는 경우입니다. 인터넷상의 모든 곳에서 사람들은 상관 토큰이나 taskid가 제대로 설정되지 않은 경우에 이런 일이 발생한다고 말합니다. 그러나 세 번 확인하고 심지어 처음부터 다시 작성했지만 동일한 오류가 발생했습니다.

이상한 일은 일단 모든 것을 logtoHistory 활동 전에 옮기면 도움이되는 것입니다. 내 말은, 그건 나에게 어떤 의미가 없어요.

그러나이 경우에는 logtohistory 이벤트가 없으므로 문제가 발생하지 않습니다.

업데이트 : onTaskChange 활동의 afterproperties를 바인딩하자마자 바로 이것이 발생하는 것으로 나타났습니다. ???

UPDATE : alt text http://i47.tinypic.com/2co0c4p.jpg

더하고 상관 관계 토큰과 관련하여 디자이너 버그의 일종처럼 보이는 더 : 여기 나에게 문제를주고있다 워크 플로우의 부분의 이미지입니다. createTask에 새 작업 토큰을 만든 다음 oncreated 및 onchange 작업을 업데이트 작업에 할당하지만 CompletTask는 완료되지 않습니다. 예상대로 작업 완료까지 완료되지만 새 토큰을 완료로 설정할 경우 작업 onChangeTask에 실패합니다. completeTask를 삭제하면 onChangeTask가 실패합니다. WTF ??

답변

2

여기에서 상관 토큰에 문제점이있을 수 있습니다. 전체 워크 플로우에 사용 된 상관 관계 토큰과 다른 상관 관계 토큰을 사용하고 있습니까?

EDIT : 다른 질문 - 작업의 TaskID 속성을 코드 에 설정하고 있습니까? 내 사용자 지정 활동에서 항상 CreateTask 활동의 TaskID 속성을 로컬 필드 icTaskID에 바인딩합니다. 그런 다음 CreateTask activitie의 methodInvoking 이벤트에 이벤트 핸들러를 추가하고 그 이벤트 내에서 다음을 수행합니다.

Me.icVisaTaskID = Guid.NewGuid 
+0

이 태스크와 관련된 다른 토큰을 사용하고 있습니다. –

+0

내 대답을 편집했습니다. 아마도 TaskID 속성에 문제가 있습니까? – naivists

+0

예, createTask 호출 처리기에서 taskId를 설정 중입니다. 업데이트 된 질문에 쓴 것처럼 AfterProperties를 바인딩 한 후에 발생합니다. 바인딩되지 않은 경우에는 제대로 작동합니다. –

관련 문제