Веб-часть, развернутая в GAC, не работает - PullRequest
2 голосов
/ 14 февраля 2009

Итак, я унаследовал проект VS, в котором есть множество веб-частей. У проекта был ключевой файл с паролем, который никто не знает, что это за пароль. Итак, я создал новый ключевой файл, который явно меняет PublicKeyToken ...

Я подумал, что развертывание новой сборки в GAC и замена старого PublicKeyToken новым на ссылки SafeControl в web.config помогут. Однако, когда я захожу на сайт, ни один из веб-элементов управления не работает. Все они говорят «Ошибка веб-части ...»

Вот пример старой ссылки на web.config safecontrol ...

Вот новый ...

Я получил новый токен, щелкнув правой кнопкой мыши и просмотрев свойства сборки из gac "c: \ windows \ assembly" ...

Что я делаю не так ..?

Ответы [ 7 ]

1 голос
/ 13 марта 2009

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

1 голос
/ 14 февраля 2009

Ссылки на SafeControl не отображаются, но как первая проверка работоспособности: вы не забыли перезапустить IIS (необходимо при развертывании в GAC)?

0 голосов
/ 08 марта 2011

Какой класс наследуют ваши веб-части?

Материал может сломаться, если вы используете классы SharePoint.WebPartPages

public class yourWebPartClass : Microsoft.SharePoint.WebPartPages.WebPartPage

Вместо этого используйте класс WebControls в System.Web.UI

public class yourWebPartClass : System.Web.UI.WebControls.WebParts.WebPart

/ Cheers:)

0 голосов
/ 15 февраля 2009

В WSS распространенной проблемой является то, что информация шаблона дублируется и встраивается в данные в базе данных. Одним из примеров этого являются определения в файле onet.xml, который дублируется в каждом веб-экземпляре. Другой случай, когда веб-части добавляются на страницу пользователем. Чтобы изменить строгое имя, обычно требуется заново создать каждый сайт, на котором использовалась веб-часть.

0 голосов
/ 15 февраля 2009

Есть пара вещей, которые вы должны проверить ....

Если у вас нет веских причин, веб-части не следует развертывать в GAC, они должны находиться в папке bin вашего веб-приложения. Это где stsadm поставит их для вас. Вы должны убедиться, что у вас нет сборок для вашей веб-части в папке bin, если вы выполняете развертывание в GAC, sharepoint запутается, какую версию использовать - GAC или bin.

Вы должны убедиться, что он зарегистрирован как safecontrol в файле конфигурации вашего веб-приложения. Обязательно выполните сброс IIS при развертывании НИЧЕГО в GAC.

0 голосов
/ 15 февраля 2009

Загрузите и используйте расширения VSeWSS 1.3. Он сделает все это автоматически для вас, включая развертывание: -)

https://connect.microsoft.com/Downloads/Downloads.aspx?SiteID=428&wa=wsignin1.0

0 голосов
/ 14 февраля 2009

Звучит так, как будто вы внесли правильные изменения, так что, возможно, это что-то еще.
Вы проверили журналы событий и журналы sharepoint на наличие ошибок?

...