1

私は実際にこれをすでに解決していますが、私は解決策が奇妙であると感じています。ワークフローより多くの質問を提出したSPRootWebソリューション|エラー:TrackedRequestsにリクエストが見つかりません

ほとんどのSharePoint開発者に非常に精通し、次のようになります場合は、私はああとても素敵

「TrackedRequestsで見つからない要求する私たちは、異なるスレッド上でウェブを作成し、クローズされる可能性がありますERROR」となっていたことがわかりました。この場合、ワークフロー用です。私はそれを解決することができたが、それは私のために困惑していた。いくつかの試行錯誤をした後、これは明らかにそれを解決しました。

前のコード:

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

私はワークフローのプロパティに関する問題ではありませんが、エラーを追跡しました。サイトとWebオブジェクトがインスタンス化されることにより、

問題は、ワークフローのプロパティからSPListItemオブジェクトに基づいてGUIDを取得し、その問題を引き起こしているようだライブラリのクラスにそれを渡して取る、このコード

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

でしたあなたにIDを与える前に。私がGuidをメソッドに直接渡すと、その問題が解決されたので、その動作は私の推測です。

SPWebおよびSPSite Guidを、ライブラリクラスのワークフロー外のメソッドに渡すのは、SPListItemオブジェクトからそれらを派生させると、トレースが困難なエラーが発生するためです。

関連する問題