English 中文(简体)
尝试部署网络部件时出现错误。
原标题:
  • 时间:2008-10-16 06:36:45
  •  标签:

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

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 

一切正常,直到我尝试添加网页部件,然后我就会在弹出窗口中收到此错误信息。在我的开发虚拟机上完全正常...?

任何想法都会受到赞赏,谢谢。

最佳回答

嗯,看起来你的网页部分定义文件出了些问题。我通常是将网页部分放入页面中并导出它。您可以通过打开网页部件库来实现此操作,该库可以位于根站点集的站点设置中,并在其中添加您的网页部件。

之后只需将 WebPart 放置到任何页面上并在 WebPart 设置中使用导出按钮。这将生成 .webpart 或 .dwp 文件,具体取决于您的 WebPart(.webpart 是 MOSS 2007 本地 WebPart 所使用的新定义,而 .dwp 则适用于更早的 WebPart,但这取决于您编写 WebPart 的方式)。

然后只需将导出的文件并入您的项目中即可。至少对我来说,这种做法是有效的。

问题回答

你把你的 webpart 打包成了 .webpart 文件吗?

如果是这种情况,您必须使用新的v3命名空间。要使用v2,您必须将其打包为.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文件。 如果有任何定制属性设置,请将其删除并重新测试。

逐个注释您的网络部件代码中的自定义属性,每个步骤重新测试。

我认为您会发现其中一项问题的原因 - 为什么是下一个问题!





相关问题
热门标签