EpiServer PendingPublish имеет значение true в событии PublishedPage

В EpiServer 6 мне нужно переиндексировать страницу всякий раз, когда она публикуется. Внутри обработчика событий PublishedPage я проверяю, опубликована страница или нет, используя:

e.Page.CheckPublishedStatus(PagePublishedStatus.PublishedIgnoreDates)

Этот метод всегда возвращает false. Свойство Status для страницы имеет значение Published, но свойство PendingPublish имеет значение true, и я предполагаю, что именно по этой причине CheckPublishedStatus возвращает значение false.

Когда для свойства PendingPublish устанавливается значение false после публикации страницы? Есть ли другой обработчик событий, который я могу использовать для своих целей индексации?


person Umit    schedule 11.10.2013    source источник


Ответы (1)


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

Итак, мне кажется, проверка статуса избыточна?

person Ted Nyberg    schedule 11.10.2013
comment
Я поддерживаю существующий код, и функция индексации используется в нескольких местах. Внутри этой функции находится проверка состояния. Как вы думаете, чем я мог бы заменить этот чек? - person Umit; 11.10.2013
comment
Поскольку это событие срабатывает только при публикации страницы, вы можете быть уверены, что она опубликована. Я бы проиндексировал все страницы, когда они опубликованы (просто снял галочку), а затем в FilterForVisitor для любого результата поиска, возвращаемого из поискового индекса. - person Ted Nyberg; 11.10.2013
comment
Примечание. Название «Опубликовано» может немного вводить в заблуждение — страница может быть опубликована без публичного доступа (в зависимости от даты начала/окончания, ACL и т. д.). - person Ted Nyberg; 11.10.2013