簡體   English   中英

在Project Server 2013中創建任務的遠程事前處理程序不起作用

[英]Remote pre-event handler for task creating in project-server 2013 doesn't work

目的:我希望有人創建新任務時對其進行驗證,並在需要時取消。

環境詳細信息:當前,我正在使用Project Server 2013,並試圖使遠程事件處理程序正常工作。 遠程事件處理程序位於WCF服務中,該服務位於ASP.NET Web應用程序中,該服務與Project Server一起托管在Windows Server的IIS上。

目前,我的應用程序中有2個WCF服務:

  1. 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管理中心-> ...->服務器端事件處理程序->綁定到事件Project - Creating

    類名 :EventHandlersTest.ProjectEventReceiverDemo

    網址http:// localhost:6569 / EventHandlersTest / ProjectEventReceiver.svc

    網址正常,我可以在瀏覽器中訪問該.cvs文件。 該處理程序可以完美地工作 (例如,當我使用無效名稱創建新的Enterprise Project時-捕獲了該事件,取消了創建,並且我可以看到我的自定義日志顯示該類已構建並且調用了OnCreatingRemote方法)。

現在第二個服務本身的問題:

  1. 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

    同樣,URL是正確的-我可以在瀏覽器中訪問它。

現在有問題的流程 :我創建了一個SharePoint任務列表項目,然后去那里並單擊“ New Task ,填寫所需的名稱-它創建了一個任務。 未收到事件,未創建TaskEventReceiverDemo類的對象,並且未調用OnTaskCreatingRemote方法。

我不確定IStatusingEventReceiverRemote是否是正確的接口,因為在reference中沒有真正有用的描述,因此我僅基於方法名稱進行了假設。

我還嘗試實現IResourceEventReceiverRemote ,特別是方法OnCreatingRemote並將其綁定到Resource - OnCreating相同的結果(由於Task不是資源,這似乎是合乎邏輯的)。

問題:有人可以闡明我在創建有問題的流程中描述的任務時會引起的事件的名稱嗎? 或者,也許我做錯了事,無法解決。

提前致謝。

看起來我找到了一個請求者(至少是一部分)

我已經創建了覆蓋名稱空間Microsoft.Office.Project.Server.Events所有接口所需的所有服務,並且在我記錄到文件的每個實現的方法中。

此后,我從SP Central Admin訂閱了所有服務器端事件處理程序,並開始使用SharePoint任務列表項目類型的CRUDing任務。

我希望這可以在我的日志記錄幫助下向我揭示所需的方法。 但是,結果令人驚訝:日志中什么也沒有,這意味着SharePoint Task List Project的CRUDing任務不會觸發任何事件

順便說一句,處理程序是正確的並且已正確訂閱,因為我可以看到有關創建項目的日志。 對於另一種類型的項目-企業項目-實際觸發了任務事件並且很明顯: Statusing - TaskCreating等。

如果有人能解釋我為什么在企業項目中創建事件而不是在SP任務列表之一中觸發事件,我將不勝感激,因為我僅部分回答了我的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM