目的:我想只要有人創建了一個新的任務,驗證它,如果需要取消。遠程事件預處理器不工作
環境詳細信息:目前我正在使用Project Server 2013並嘗試使遠程事件處理程序正常工作。遠程事件處理程序中WCF服務,這是在ASP.NET Web應用程序,與Project Server一起在IIS上承載的Windows服務器上。
目前,我有我的應用程序2個WCF服務:
ProjectEventReceiver.svc:
namespace EventHandlersTest { public class ProjectEventReceiverDemo : IProjectEventReceiverRemote { ... public ProjectPreEventArgs OnCreatingRemote(PSContextInfo contextInfo, Guid eventHandlerUid, ProjectPreEventArgs e) { if (/*invalid project name for example*/) { e.Cancel = true; } return e; } ... } }
這一個是在SharePoint管理中心Administation綁定 - > - >服務器側面事件處理程序 - >
Project - Creating
這樣的事件:類名稱:EventHandlersTest.ProjectEventReceiverDemo
地址:http://localhost:6569/EventHandlersTest/ProjectEventReceiver.svc
網址是好的,我可以訪問.cvs文件瀏覽器。 這個處理程序完美地工作(例如,當我創建一個名稱無效的新企業項目 - 事件被捕獲,創建被取消,我可以看到我的自定義日誌顯示類已構建,方法
OnCreatingRemote
被調用)。
現在與第二服務本身的問題:
TaskEventReceiver.svc:
namespace EventHandlersTest { public class TaskEventReceiverDemo : IStatusingEventReceiverRemote { ... public StatusCreateTaskPreEventArgs OnTaskCreatingRemote(PSContextInfo contextInfo, Guid eventHandlerUid, StatusCreateTaskPreEventArgs e) { // just cancel everything for now e.Cancel = true; return e; } ... } }
這一個是綁定到事件
Statusing - TaskCreating
像這樣:類名稱:EventHandlersTest.TaskEventReceiverDemo
地址:http://localhost:6569/EventHandlersTest/TaskEventReceiver.svc
再次,網址是正確的 - 我可以在瀏覽器中訪問它。
現在問題的流程:我創建了一個SharePoint任務列表項目,然後我去那裏,點擊New Task
,填寫所需的名稱 - 它創建的任務。沒有接收到事件時,不創建TaskEventReceiverDemo
類的對象和不調用方法OnTaskCreatingRemote
。
我不確定IStatusingEventReceiverRemote
是否是一個正確的界面,因爲reference中沒有真正有用的描述,所以我只根據方法名進行了假設。
我也嘗試實施IResourceEventReceiverRemote
,尤其是方法OnCreatingRemote
並將其綁定到Resource - OnCreating
- 結果相同(並且它似乎是邏輯因爲任務不是資源)。
問題:有人可以澄清一下,當我創建一個任務,如問題流程中所描述的那樣,會引發什麼事件的名稱?或者,也許我做錯了什麼,不能弄明白。
在此先感謝。