1

我已经解决了这个问题,但我发现解决方案很奇怪,至少可以这么说。如果发现我居然也得到了哦,这么漂亮的带来更多问题的工作流SPRootWeb解决方案|错误:在TrackedRequests中找不到请求

“错误:请求没有找到TrackedRequests我们可能会创建和在不同的线程收网”。

这将是最SharePoint开发非常熟悉。在这种情况下,它适用于工作流程。我设法解决了这个问题,但对我来说有点令人费解。在做了一些试验和错误之后,这显然解决了它。

以前的代码:

SPWeb = workflowPriperties.Site.RootWeb; 

目前代码:

Guid siteId = workflowProperties.Site.ID; 

using (SPSite site = new SPSite(siteId)) 
{ 
    using (SPWeb web = site.OpenWeb(site.RootWeb.ID)) 
    { 
    //Do Something 
    } 
} 

这已经解决了,从我的特殊方法来的问题。虽然现在我得到了,现在似乎并没有来自我自己的自定义代码中的错误信息(我仍然不知道为什么),我百思不得其解,因为我的印象是创建该workflowProperties对象下,如下图所示:

public Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties workflowProperties = new Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties(); 

都类似于从SPContext获取它们,这意味着它们不必被处置或关闭。这是否意味着SPWorkflowActivationProperties对象的某些属性实际上是SPRequest对象的新实例,或者是从新的SPRequest对象派生的?

我希望我的问题看起来不是太愚蠢,如果它之前已经问过。请高贵地指出我回答这个问题的线索。

感谢。

回答

0

好吧,我不是关于工作流属性问题,但是我追踪了错误。

的问题是,因为这个代码

public void readusersFromItems(SPListItem item) 
{ 
Guid siteid = item.Web.Site.ID; 
Guid webId = item.ParentList.ParentWeb.ID; 

以获得基于GUID从工作流程属性SPListItem对象,并把它传递到库类似乎导致了这个问题,其中一个站点和Web对象实例化然后给你身份证。这种行为只是我的猜测,因为当我将Guid直接传入方法时,它解决了问题。

外卖将永远的SPWeb和SPSite的的Guid传递到库中的类从SPListItem对象得出他们的工作流程之外的方法将导致难以跟踪误差。

相关问题