从Visual Studio 2010测试SharePoint列表工作流

时间:2011-12-14 18:05:25

标签: visual-studio-2010 sharepoint-2010

我正在尝试在Visual Studio 2010 for SharePoint 2010中创建自定义工作流并遇到问题。我已经找到了如何将工作流部署到SharePoint站点,但执行它会导致错误。但是,错误消息完全是非描述性的,所以我想知道是否有办法从Visual Studio执行它,这样我就可以看到它失败的地方,也可能是为什么。

我正在尝试根据给定的ListItem.Title信息创建一个新的子网站。

你是如何进行调试的?

供参考,这是我的代码

class CreateSubsite : System.Workflow.ComponentModel.Activity
{
    protected override System.Workflow.ComponentModel.ActivityExecutionStatus
        Execute(System.Workflow.ComponentModel.ActivityExecutionContext executionContext)
    {
        createSite();
        return System.Workflow.ComponentModel.ActivityExecutionStatus.Closed;
    }

    public void createSite()
    {
        using (SPSite currentSite = SPContext.Current.Site)
        {
            using (SPWeb currentWeb = SPContext.Current.Web)
            {
                SPList currentList = SPContext.Current.List;
                SPListItem currentListItem = SPContext.Current.ListItem;

                WorkflowContext workflow = new WorkflowContext();
                SPSite parentSite = new SPSite(workflow.CurrentWebUrl);

                SPWeb newSite = currentSite.AllWebs.Add(
                    currentListItem.Title.Replace(" ", "_"),
                    currentListItem.Title,
                    String.Empty, currentWeb.Language, "CI Template", false, false
                );
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

尝试从代码中删除使用关键字。当您使用 SPContext 时,不应丢弃SPSite和SPWeb,因为丢弃该对象实际上可能会破坏工作流,因为它可能仍需要引用对象供以后使用。 只需重复使用代码而不使用白色

  public void createSite() {
        SPSite currentSite = SPContext.Current.Site 
        SPWeb currentWeb = SPContext.Current.Web
         //.... Rest of your code

希望有所帮助 问候。