我刚刚编写了一个新的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部件,然后我在弹出窗口中收到此错误。它在我的开发虚拟机上运行得很好......?
任何想法都会很感激,谢谢。
答案 0 :(得分:1)
好吧,看起来你的webpart定义文件有点破坏了。我这样做是将webpart放入页面然后导出它。您只需打开webpart galery就可以做到这一点,它可以位于根网站集的站点设置中,并在那里添加您的webpart。
之后只需将webpart放到任何页面并在webpart设置中使用导出按钮。这将生成.webpart或.dwp文件,具体取决于您的webpart(.webpart是'新的'定义,由MOSS 2007原生的webparts使用,.dwp用于较旧的webparts,但这取决于您编写webpart的方式)
然后只需获取导出的文件并将其包含在项目中。这种方法至少对我有用。
答案 1 :(得分: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部件代码中的自定义属性,并在每个步骤重新测试。
我认为你会发现其中一个导致了这个问题 - 究竟为什么是下一个问题!
答案 2 :(得分:0)
您是否将Web部件打包为.webpart文件?如果是这种情况,则必须使用新的v3命名空间。要使用v2,您必须将其打包为.dwp文件。
答案 3 :(得分:0)
是的,您的Web部件定义文件(* .dwp或* .webpart)可能不正确。在这里发布,应该迅速找到错误。