2

我刚刚编写了一个新的 Web 部件,现在当我尝试在我的非开发服务器上部署它们时出现此错误:

默认命名空间“ http://schemas.microsoft.com/WebPart/v2 ”是为基本 Web 部件属性保留的命名空间。自定义 Web 部件属性需要唯一的命名空间(通过属性上的 XmlElementAttribute 或类上的 XmlRootAttribute 指定)。

我正在将 Web 部件写入 CAB 文件并使用以下命令部署它们:

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

一切正常,直到我尝试添加 Web 部件,然后我在弹出窗口中收到此错误。它在我的开发虚拟机上工作得很好......?

任何想法将不胜感激,谢谢。

4

4 回答 4

1

好吧,看起来您的 webpart 定义文件 si 不知何故损坏了。我这样做是将webpart放入页面然后导出。您可以通过打开 webpart 画廊来做到这一点,它可以位于根网站集的网站设置中并在那里添加您的 webpart。

之后,只需将 webpart 放置到任何页面并在 webpart 设置中使用导出按钮。这将根据您的 webpart 生成 .webpart 或 .dwp 文件(.webpart 是“新”定义,由 MOSS 2007 原生的 webparts 使用,.dwp 用于较旧的 webparts,但这取决于您编写 webpart 的方式)

然后只需将导出的文件包含到您的项目中即可。这种方法至少对我有用。

于 2008-12-02T17:03:01.687 回答
0

这里有点有根据的猜测,但无论如何:-

首先检查您的 Web 部件中是否有这样的 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 文件中的数据进行消毒并在 Web 部件中设置自定义属性时,会发生此错误。

我怀疑该错误可能与命名空间冲突无关,因为 SharePoint 有时倾向于退回到可能是红鲱鱼的错误消息。

我会首先检查您的 .dwp 文件。您是否在那里设置了任何自定义属性,如果有,请删除它们并重新测试。

将 Web 部件代码中的自定义属性一一注释掉,并在每一步重新测试。

我想你会发现其中一个是导致问题的原因——下一个问题到底是为什么!

于 2008-10-16T07:28:47.200 回答
0

您是否将您的 webpart 打包为 .webpart 文件?

如果是这种情况,您必须使用新的 v3 命名空间。要使用 v2,您必须将其打包为 .dwp 文件。

于 2008-10-16T07:33:50.640 回答
0

是的,您的 Web 部件定义文件(*.dwp 或 *.webpart)可能不正确。把它贴在这里,应该很快就能找到错误。

于 2008-12-28T15:24:24.787 回答