繁体   English   中英

ExecutionEngineException用于取消我的SharePoint 2013工作流

[英]ExecutionEngineException for canceling my SharePoint 2013 Workflow

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

下面是我的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);
                }
            }

任何帮助,将不胜感激。

马雷克:

我已经与Microsoft(MS)开了一个案子。 他们最初的回答是,他们知道SharePoint和MVC5的安全性和其他问题。 我尝试使用SharePoint WCF服务项目广告获得了相同的结果。 我会让您知道MS响应时的发现。 至于Fiddler,我尝试了一下,但是并没有告诉我太多,或者也许我没有正确解释结果。 我真的以为我是否提供了明确的凭据(与可以使用的控制台应用程序相同),但是却出现了相同的错误。

我发现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);
         }
      }
   }                   
 });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM