Как найти недостающую веб-часть?
-
03-10-2019 - |
Вопрос
Кто-нибудь знает, как найти вредоносную веб-часть, вызывающую эту ошибку?
«Веб-часть или элемент управления веб-формой на этой странице веб-части невозможно отобразить или импортировать, поскольку она не зарегистрирована на этом сайте как безопасная».
Я унаследовал старый сайт портала SharePoint 2003, который использует пользовательские веб-части.
Я знаю, что означает эта ошибка.Я также знаю, что каждая веб-часть должна быть установлена и зарегистрирована как безопасная в web.config.Проблема в том, что я не знаю, какой из них отсутствует.Я получаю ту же ошибку, когда пытаюсь открыть страницу в FrontPage.
Решение
Перейдите в программу просмотра событий на компьютере, и вы сможете увидеть записи об ошибках.Из множества записей вам нужно найти записи, относящиеся к вам, и вы сможете увидеть имена веб-частей, которые сайт SharePoint пытается загрузить, но терпит неудачу.Если вы прочтете полное описание записи об ошибке в средстве просмотра событий, оно также предоставит вам версию и даже токен PublicKey веб-части.
Надеюсь, это поможет!!!
Другие советы
Используйтеcontent=1 в QueryString, чтобы отключить/удалить веб-части со страницы, вызывающей ошибки.
stsadm.exe -o enumallwebs -includewebparts
http://sharepointreporter.wordpress.com/
Я полагаю, что для доступности этой команды требуется обновление до Sp2.Проблемные веб-части будут отображаться в результирующем списке как «Отсутствуют».
Попробуйте прочитать это:
http://www.bluedoglimited.com/SharePointThoughts/ViewPost.aspx?ID=189
Это должно дать вам некоторые подсказки для решения проблемы.По сути, у вас есть элемент управления, который не помечен как безопасный и дает сбой.Скорее всего, вы сможете настроить его для работы, но по ссылке выше есть и другие возможные решения.
в ваш URL просто добавьте content=1.Это даст вам все развернутые веб-части.Теперь вы можете продолжать удалять каждую веб-часть, чтобы определить, какая из них вызывает проблему (убедитесь, что вы знаете, что нужно добавить веб-части обратно).
Например:если URL-адрес http://localhost:9000/default.aspx, попробуй с http://localhost:9000?contents=1
Альтернативно попробуйте создать новую страницу веб-частей, добавить веб-части, которые есть на вашей реальной странице, и проверить, какая из них вызывает проблему.Это позволит избежать изменений на фактической странице.
Надеюсь это поможет.
Я только что предложил тот же ответ на MSDN:
Этот stsadm помог мне найти ссылку на веб-часть:
stsadm -o enumallwebs -includewebparts > C:\temp\somelog.txt
Затем вы увидите, что веб-часть указана в некоторых <Web Id=... Url=...>
XML-узел, т.е.вы знаете «виновный» веб-сайт.
На этом этапе я нашел несколько причин для этих забытых ссылок:
веб-часть используется на каком-то подсайте виновного веб-сайта, и этот подсайт скрыт из быстрого списка или верхней панели
веб-часть была удалена с виновного веб-сайта, но она все еще находится в «корзине семейства веб-сайтов».Вы можете достичь этого, перейдя в обычную корзину веб-сайта, а затем найдя ее ссылку в описании верхней панели («Используйте эту страницу для восстановления элементов, которые...»).Кстати, эта корзина семейства сайтов сама по себе имеет два представления:обязательно проверьте их обоих.
В обоих случаях мне помогли, просмотрев виновный веб-сайт с помощью SharePoint Manager.При этом я мог легко обнаружить существование забытого дочернего сайта, а также существование этой «корзины второго уровня».
ХТХ