Мои существующие веб-части не будут работать в SharePoint - PullRequest
1 голос
/ 20 июля 2009

У меня есть стандартный веб-сайт ASP.NET 2.0.
Имеет страницу веб-страницы.
У меня есть веб-часть в моей Company.Web.dll, которую я отображаю на своей веб-странице на моем веб-сайте.
Все хорошо !!!

Я хотел бы использовать эту же веб-часть в SharePoint 2007.

У меня есть проект «Определение сайта» в VS2008, использующий Расширения для SharePoint 1.2. Я пробовал разные способы добавить веб-часть из внешней сборки в определение моего сайта. Мне удалось развернуть веб-часть (где она добавлена ​​в список веб-частей на странице веб-части), но мне не удалось добавить ее на страницу.

Мои славные неудачи:

  1. Создана веб-часть оболочки для отображения существующей веб-части, в основном просто с использованием моей части в качестве элемента управления.
  2. Попытка изменить файлы X.webpart и X.xml, созданные VS2008, при создании новой веб-части.

При добавлении веб-части на страницу в обоих случаях возникает следующая ошибка:

Исключение Microsoft.SharePoint.WebPartPages.WebPartPageUserException: Невозможно импортировать XXXX веб-часть.
в Microsoft.SharePoint.WebPartPages.WebPartImporter.CreateWebPart (Boolean clearConnections) в Microsoft.SharePoint.WebPartPages.WebPartImporter.Import (SPWebPartManager менеджер, читатель XmlReader, логический clearConnections, Uri webPartPageUri, SPWeb spWeb) в Microsoft.SharePoint.WebPartPages.WebPartImporter.Import (SPWebPartManager менеджер, читатель XmlReader, логический clearConnections, SPWeb spWeb) в Microsoft.SharePoint.WebPartPages.WebPartQuickAdd.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent (String eventArgument)

Есть ли какой-то особый способ добавить мою существующую веб-часть к определению моего сайта?

Ответы [ 4 ]

1 голос
/ 21 июля 2009

Это звучит как проблема с разрешением GUID во время развертывания, как вы можете прочитать о в этом вопросе SO .

0 голосов
/ 21 июля 2009

Веб-части ASP.NET и Sharepoint веб-части НЕ одинаковы. Вы должны иметь возможность использовать веб-часть ASPNET в Sharepoint. Смотрите следующую таблицу:

Веб-часть ASP.NET 2.0

  • Для большинства нужд бизнеса.
  • Чтобы распространить вашу веб-часть на сайты, на которых работают сайты ASP.NET 2.0 или SharePoint.
  • Если вы хотите повторно использовать одну или несколько веб-частей, созданных для сайтов ASP.NET 2.0, на сайтах SharePoint.
  • Для использования данных или функций, предоставляемых Windows SharePoint Services 3.0. Например, вы создаете веб-часть, которая работает с данными сайта или списка.

Веб-часть на основе SharePoint

  • Если вы хотите перенести набор веб-частей с помощью инфраструктуры веб-частей на основе SharePoint в Windows SharePoint Services 3.0.
  • Для создания межстраничных соединений.
  • Для создания соединений между веб-частями, которые находятся за пределами зоны веб-частей.
  • Для работы с соединениями на стороне клиента (компонент служб страниц веб-частей).
  • Использование инфраструктуры кэширования данных, которая позволяет кэшировать базу данных контента.

Чтобы веб-часть Sharepoint работала в стандартном приложении ASPNET, вам потребуется заново создать веб-части в Visual Studio (в качестве веб-части ASPNET) без ссылок на Sharepoint 2007, чтобы она работала правильно.

Одним изящным инструментом, который я использовал в прошлом, является SmartPart Стоит проверить:

Это позволяет вам создать пользовательский контроль ASP.NET (визуально) в Visual Studio и затем разместить его в Sharepoint. Smartpart действует как оболочка для вашего пользовательского контроля. Думайте об этом как о веб-части средства просмотра страниц в Sharepoint, за исключением того, что она не является HTML-страницей, а ее ASP.NET UserControls.

0 голосов
/ 21 июля 2009

Чтобы узнать, почему веб-часть не импортируется, проверьте журналы ULS. Они обычно расположены в %CommonProgramFiles%\Microsoft Shared\web server extensions\12\LOGS. Запись будет зарегистрирована здесь, когда вы попытаетесь добавить веб-часть на страницу. Это должно дать вам больше деталей.

Я предполагаю, что это проблема безопасности доступа к коду. Ваша веб-часть должна быть строго подписана и должна иметь запись SafeControl в web.config веб-приложения SharePoint. Помимо этих вещей, вы можете просто добавить его в глобальный кэш сборок, чтобы проверить, работает ли он (лучше всего написать файл политики CAS). Подробнее см. Развертывание веб-частей в Windows SharePoint Services .

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

Кроме того, VSeWSS действительно разработан для разработки вашей веб-части, используя ее с самого начала. Если у вас есть исходный код, вы можете попробовать создать новую веб-часть с помощью VSeWSS, а затем заменить ее на свой собственный код и обновить файлы .webpart и Feature XML. Тогда он должен вести себя немного лучше. Если вы еще не приняли участие в VSeWSS, попробуйте WSPBuilder , так как это менее болезненно.

0 голосов
/ 20 июля 2009

Для использования веб-частей ASP.NET 2.0 вам понадобится WSS 3.0, SharePoint MOSS или 2007. SharePoint 2003 или ниже и WSS 2.0 или ниже не поддерживают ASP.NET WebParts.

...