Тестирование рабочего процесса списка SharePoint из Visual Studio 2010 - PullRequest
0 голосов
/ 14 декабря 2011

Я пытаюсь создать пользовательский рабочий процесс в Visual Studio 2010 для 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 голосов
/ 15 декабря 2011

Попытайтесь удалить ключевое слово Using из своего кода. Вам не следует утилизировать SPSite и SPWeb при использовании SPContext , поскольку удаление этого объекта может фактически нарушить рабочий процесс, поскольку ему все равно может потребоваться ссылка на этот объектдля последующего использования.просто переписать свой код без использования

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

Надеюсь, что помогу С уважением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...