1

我正在使用 SharePoint 2013、VS2013 和工作流引擎 4.5。我有一个自定义应用程序页面,用于工作流程的下一步。此页面上的按钮之一是取消按钮。当我的用户单击它时,我使用 ajax 调用我的 MVC Web 应用程序。我的 MVC5.0 应用程序我首先更新我的实体框架数据库记录,然后尝试取消工作流。

下面是我的 MVC 代码。为什么我在这一行出现 ExecutionEngineException 错误 clientContext.Load(instances); 注意:如果获取以下代码并将其复制到控制台应用程序,它就可以工作!

            //cancel the workflow
            ClientContext clientContext = new ClientContext(baseUrl);
            WorkflowServicesManager wfsm = new WorkflowServicesManager(clientContext, clientContext.Web);
            WorkflowInstanceService instanceService = wfsm.GetWorkflowInstanceService();
            WorkflowInstanceCollection instances = instanceService.EnumerateInstancesForListItem(listId, itemId);
            **clientContext.Load(instances);**
            clientContext.ExecuteQuery();

            foreach (WorkflowInstance instance in instances)
            {
                if (instance.Id == new Guid(instanceId))
                {
                    instanceService.CancelWorkflow(instance);
                }
            }

任何帮助,将不胜感激。

4

2 回答 2

0

我发现需要用以下代码替换 CSOM 代码(上面)。注意:我还必须使用提升的权限运行以下代码。

SPSecurity.RunWithElevatedPrivileges(delegate()
{
   using (SPSite site = new SPSite(baseUrl))
   {
      using (SPWeb web = site.OpenWeb())
      {
         SPList list = web.Lists["Documents"];
         Microsoft.SharePoint.WorkflowServices.WorkflowServicesManager wsm = new Microsoft.SharePoint.WorkflowServices.WorkflowServicesManager(web);
         Microsoft.SharePoint.WorkflowServices.WorkflowInstanceService service = wsm.GetWorkflowInstanceService();
         var instances = service.EnumerateInstancesForListItem(gPageList, pageID);
         foreach (var instance in instances)
         {
            service.CancelWorkflow(instance);
         }
      }
   }                   
 });
于 2014-05-27T12:02:50.733 回答
0

马雷克:

我已向 Microsoft (MS) 立案。他们给出的初步回应是他们知道 SharePoint 和 MVC5 的安全性和其他问题。我尝试使用 SharePoint WCF 服务项目广告得到了相同的结果。当 MS 回复时,我会告诉你我发现了什么。至于提琴手,我试过了,但它并没有告诉我太多,或者我没有正确解释结果。我真的想如果我提供了明确的凭据(与工作的控制台应用程序相同)但得到了同样的错误。

于 2014-05-15T19:11:02.980 回答