尝试部署web部件时出错
本文关键字:出错 web 部署 | 更新日期: 2023-09-27 17:47:47
我刚刚写了一个新的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部件,然后我在弹出窗口中得到这个错误。它在我的开发虚拟机上运行得很好。。。?
任何想法都将不胜感激,谢谢。
好吧,看起来你的Web部件定义文件不知怎么坏了。我所做的是将Web部件放入页面,然后导出。只需打开Web部件galery即可完成此操作,该galery可以位于根网站集的网站设置中,并在那里添加您的Web部件。
之后,只需将Web部件放置到任何页面,并使用Web部件设置中的导出按钮。这将根据您的Web部件生成.webart或.dwp文件(.webart是MOSS 2007原生Web部件使用的"新"定义,.dwp用于旧的Web部件,但这取决于您如何编写Web部件)
然后只需获取导出的文件并将其包含到您的项目中。这种方法至少对我有效。
您是否将Web部件打包为.webart文件?
如果是这种情况,则必须使用新的v3命名空间。要使用v2,必须将其打包为.dwp文件。
是的,您的web部件定义文件(*.dwp或*.webpart)可能不正确。把它贴在这里,应该很快就能发现错误。
这是一个有根据的猜测,但无论如何:-
首先检查您的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部件代码中的自定义属性,并在每个步骤中重新测试。
我想你会发现其中一个导致了问题——下一个问题到底是为什么!