Исключение из HRESULT: 0x80020009 (DISP_E_EXCEPTION)) в SharePoint - PullRequest
0 голосов
/ 12 апреля 2010

После долгих поисков в поисках решения для вышеупомянутого исключения Sharepoint, я пришел в SO за помощью по этому вопросу ...

Я считаю, что причиной получения вышеуказанного исключения является следующий код:

try
{
    using (SPSite site = new SPSite(siteId, spUserToken))
    {
        using (SPWeb web = site.OpenWeb(webId))
        {
            createNewSite(web);
        }
    }
}

createNewSite (web) изменяет имя и URL-адрес «web» с помощью AllowUnsafeUpdates, поэтому, когда оно выходит из метода, оно изменяется. Мой опыт разработки Sharepoint за несколько месяцев показывает, что это является причиной исключения. «Сеть» больше не используется, поэтому я могу с комфортом обнулять ее сам. Проблема здесь ... это не сработало:

try
{
    using (SPSite site = new SPSite(siteId, spUserToken))
    {
        SPWeb web = null;
        using (web = site.OpenWeb(webId))
        {
            createNewSite(web);
            if (web != null)
            {
                web = null;
            }
        }
    }
}

Я полагаю, что первоначальный разработчик использовал объявление using, чтобы избежать утечки объектов SPWeb. Кроме того, я думаю, что это нормально для меня, чтобы сломать эту модель исключительно с целью избавиться от этого страшного исключения.

Итак, вопрос: что я могу сделать с приведенным выше кодом, чтобы потенциально исправить это исключение?

Спасибо.

1 Ответ

1 голос
/ 12 апреля 2010

Наличие метода createNewSite, который изменяет существующий сайт, является плохим признаком - вы также должны опубликовать код для этого.

Однако нет необходимости устанавливать ноль в сеть - это не имеет никакого эффекта, так как все равно собирается выйти из области видимости.

Более вероятная причина - что-то не так в пользовательском методе, который вы вызываете, или проблема с достоверностью используемых идентификаторов.

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