Я только что написал новую веб-часть и теперь получаю эту ошибку, когда пытаюсь развернуть их на своих серверах, не являющихся разработчиками:
the default namespace 'http://schemas.microsoft.com/WebPart/v2' is a reserved namespace for base Web Part propertiees. Custom Web Part properties require a unique namespace (specified through an XmlElementAttribute on the property , or an XmlRootAttribute on the class).
Я пишу веб-части в файлы CAB и развертываю их следующим образом:
stsadm -o addwppack -filename web_part_name.CAB -url http://your_url_here -globalinstall -force
Все работает нормально, пока я не попытаюсь добавить веб-часть, а затем я получаю эту ошибку во всплывающем окне. Он отлично работает на моей виртуальной машине разработчика ...?
Любые идеи будут признательны, спасибо.





Немного обоснованное предположение, но в любом случае: -
Сначала убедитесь, что у вас есть атрибут XmlRoot, подобный этому, в вашей веб-части.
[XmlRoot(Namespace = "Your.Namespace")]
public class YourWebPart: WebPart
{
...
и атрибут XmlElement в ваших настраиваемых свойствах
[DefaultValue(0)]
[WebPartStorage(Storage.Shared)]
[Browsable(false)]
[XmlElement(ElementName = "YourProperty")]
public Int64 YourProperty
{
...
}
Эта ошибка возникает, когда .NET пытается деэтерилизовать данные из файла .DWP и установить пользовательские свойства в вашей веб-части.
Я подозреваю, что ошибка может не иметь ничего общего с конфликтами пространств имен, поскольку SharePoint иногда имеет тенденцию возвращаться к сообщениям об ошибках, которые могут быть отвлекающим маневром.
Я бы сначала изучил ваш файл .dwp. У вас есть какие-либо настраиваемые свойства, если да, удалите их и повторите попытку.
Закомментируйте настраиваемые свойства в коде веб-части по одному и повторно проверяйте на каждом этапе.
Я думаю, вы обнаружите, что один из них вызывает проблему - почему именно следующий вопрос!
Вы упаковали свою веб-часть в виде файла .webpart?
В этом случае вы должны использовать новое пространство имен v3. Чтобы использовать v2, вы должны упаковать его как файл .dwp.
в моем файле .webpart у меня есть этот элемент: <webPart xmlns = "schemas.microsoft.com/WebPart/v3">, но у меня также есть файл .dwp ...? Моя структура выглядит так: naspinski.net/image.axd?picture=webpart2.jpg
Что ж, похоже, что ваш файл определения веб-части каким-то образом сломан. Я просто помещаю веб-часть на страницу, а затем экспортирую ее. Вы можете сделать это, просто открыв галерею веб-частей, которая находится в настройках сайта корневого семейства сайтов, и добавьте туда свою веб-часть.
После этого просто поместите веб-часть на любую страницу и используйте кнопку экспорта в настройках веб-части. Это создаст файл .webpart или .dwp в зависимости от вашей веб-части (.webpart - это «новое» определение, которое используется собственными веб-частями для MOSS 2007, а .dwp - для старых веб-частей, но это зависит от того, как вы написали свою веб-часть)
Затем просто возьмите экспортированный файл и включите его в свой проект. По крайней мере, у меня такой подход работает.
Да, вероятно, ваш файл определения веб-части (* .dwp или * .webpart) неверен. Опубликуйте его здесь, и вы быстро найдете ошибку.
Я упаковал его как файл .CAB, он был отключен с VS2008 и расширениями SharePoint.