После долгих поисков в поисках решения для вышеупомянутого исключения 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. Кроме того, я думаю, что это нормально для меня, чтобы сломать эту модель исключительно с целью избавиться от этого страшного исключения.
Итак, вопрос: что я могу сделать с приведенным выше кодом, чтобы потенциально исправить это исключение?
Спасибо.