2008-09-05 4 views
1

Неясная головоломка, но она меня совершенно гаснет:Политика управления информацией в SharePoint

Я создаю пользовательскую политику управления информацией в MOSS. Я реализовал IPolicyFeature, и моя функция политики с удовольствием регистрируется, настраивая новый SPItemEventReceiver. Все новинки в моей библиотеке запускают события так, как они должны, и все работает отлично.

IPolicyFeature также имеет метод ProcessListItem, который должен ретроактивно применять политику к элементам, которые уже были в библиотеке (по крайней мере, он должен делать это до тех пор, пока он продолжает возвращать true). Кроме этого нет. В политике применяется только Элемент в библиотеке, и я понятия не имею, почему.

Это не похоже на исключение, и оно действительно возвращает true из обработки этого первого элемента, и я не могу думать, на что еще смотреть. Кто угодно?

Редактировать: ответ Кори ниже, установите меня на нужную дорожку. Что-то еще действительно не срабатывало - я не узнал, что, поскольку мой windbg-fu - это не то, что должно быть, но я подозреваю, что это что-то вроде «модификации коллекции, когда она повторяется». Мой код изменял SPListItem, который передавался в ProcessListItem, а затем вызывал SystemUpdate; как только я изменил код так, чтобы он создал свою собственную переменную (указав на тот же самый SPListItem) и использовал это, проблема исчезла ...

ответ

1

Есть только несколько вещей, которые я могу придумать, чтобы попробовать. Во-первых, вы разрабатываете на коробке, где вы можете использовать Visual Studio для отладки? Так что просто перешагните его.

Предполагая, что это не так - то, что я сделал, это запустить WinDBG и приложить его к процессу непосредственно перед тем, как я зарегистрирую политику. Включите исключения первого шанса, чтобы он ломался всякий раз, когда они происходят. Вы можете сделать это, выполнив команду «SXE CLR», когда он будет разбит в этом немного подробнее о WinDBG:.

http://blogs.msdn.com/tess/archive/2008/06/05/setting-net-breakpoints-in-windbg-for-applications-that-crash-on-startup.aspx

Что я сделаю затем наблюдать за первый шанс исключения быть бросить и сделать! PrintException, чтобы увидеть, что происходит. Я предполагаю, что есть исключение, которое вызывается где-то, из-за чего приложение перестает обрабатывать другие элементы.

Как выглядит логика для вашего ProcessListItem? Вы пробовали просто делать верность, чтобы убедиться, что она работает?

0

Некоторые хорошие идеи есть, спасибо. Отладчик Visual Studio не показывал исключения (и на всякий случай я обернул все в блоках try/catch), но я не думал о попытке Windbg ...

Смежные вопросы