Ошибка при попытке развернуть веб-часть

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

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 

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

Любые идеи будут признательны, спасибо.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
3 204
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

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

Сначала убедитесь, что у вас есть атрибут 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.

Я упаковал его как файл .CAB, он был отключен с VS2008 и расширениями SharePoint.

naspinski 16.10.2008 11:37

в моем файле .webpart у меня есть этот элемент: <webPart xmlns = "schemas.microsoft.com/WebPart/v3">, но у меня также есть файл .dwp ...? Моя структура выглядит так: naspinski.net/image.axd?picture=webpart2.jpg

naspinski 16.10.2008 11:49
Ответ принят как подходящий

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

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

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

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

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