Программное создание списка из CheckoutStepsTemplate создает исключение - PullRequest
1 голос
/ 22 мая 2009

(Этот вопрос был перекрестно опубликован на форумах MSDN здесь .)

Я работаю над настраиваемым сайтом SharePoint / Commerce Server, и у меня есть настраиваемая функция, предназначенная для выполнения двух задач: предоставление некоторых страниц с помощью модулей и предоставление списка шагов извлечения с использованием шаблона CheckoutStepsList в функция приемника. Однако, по некоторым причинам, в некоторых случаях создание списка вызывает исключение:

Неверное имя файла

Указанное вами имя файла не может быть использовано. Это может быть имя существующего файла или каталога или у вас нет прав доступа к файлу.

Когда я пытаюсь перейти к списку, меня переводят на страницу настроек списка (должно быть представление по умолчанию), и список содержит 0 элементов. Похоже, что он подготовил список на полпути, но потерпел крах где-то посередине.

Довольно сложно воспроизвести эту проблему. Если я активирую функцию с помощью команды stsadm в командной строке, она всегда завершается ошибкой, но если я делаю это через пользовательский интерфейс SharePoint, иногда происходит сбой, а иногда нет. Кажется, что сбои в пользовательском интерфейсе происходят чаще, если страницы, предоставляемые через модули, еще не существуют, но я еще не уверен в этом.

Вот код ошибки:

SPListTemplateCollection listTemplateCollection = web.Site.GetCustomListTemplates(web);
SPListTemplate checkoutStepsTemplate = listTemplateCollection["CheckoutStepsTemplate"];
Guid listID = web.Lists.Add(listName, String.Empty, checkoutStepsTemplate); // the exception is thrown on this line

Есть идеи, что здесь происходит? Я буду продолжать отлаживать это со своей стороны и буду рад предоставить любую информацию, которая может помочь в диагностике проблемы.

1 Ответ

0 голосов
/ 26 мая 2009

Я так и не нашел полного решения этой проблемы, но достаточно диагностировал проблему, и мы нашли приемлемый обходной путь. Оказывается, что проблема возникала только при подготовке элементов через модули в одной функции, но когда эти модули включены в другую функцию, все работало нормально.

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

...