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對象得出他們的工作流程之外的方法將導致難以跟蹤誤差。

相關問題