Вопрос

Я только что написал новую веб-часть и теперь получаю эту ошибку, когда пытаюсь развернуть ее на своих серверах, отличных от разработки:

пространство имен по умолчанию 'http://schemas.microsoft.com/WebPart/v2«Это зарезервированное пространство имен для базовых веб -объектов.Пользовательские свойства веб -деталей требуют уникального пространства имен (указанное через XMlelementatttribute на свойство, или XMLRootattribute в классе).

Я записываю веб-части в CAB-файлы и развертываю их следующим образом:

stsadm -o addwppack -filename web_part_name.CAB -url http://your_url_here -globalinstall -force 

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

Любые идеи будут оценены, спасибо.

Это было полезно?

Решение

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

После этого просто поместите веб-часть на любую страницу и используйте кнопку экспорта в настройках веб-части.В результате будет создан файл .webpart или .dwp в зависимости от вашей веб-части (.webpart — это «новое» определение, которое используется веб-частями, родными для MOSS 2007, а .dwp — для старых веб-частей, но это зависит от того, как вы написали свою веб-часть)

Затем просто возьмите экспортированный файл и включите его в свой проект.По крайней мере, этот подход работает для меня.

Другие советы

Вы упаковали свою веб-часть в файл .webpart?

В этом случае вам придется использовать новое пространство имен v3.Чтобы использовать версию 2, вам необходимо упаковать ее как файл .dwp.

Да, возможно, ваш файл определения веб-части (*.dwp или *.webpart) неверен.Опубликуйте это здесь, и ошибка будет быстро найдена.

Здесь немного обоснованное предположение, но в любом случае: -

Сначала убедитесь, что в вашей веб-части есть такой атрибут 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.Установлены ли там какие-либо пользовательские свойства? Если да, удалите их и повторите тестирование.

Закомментируйте настраиваемые свойства в коде веб-части одно за другим и повторяйте тестирование на каждом этапе.

Я думаю, вы обнаружите, что один из них вызывает проблему — следующий вопрос, почему именно!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top