尝试部署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部件放入页面,然后导出。只需打开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部件代码中的自定义属性,并在每个步骤中重新测试。

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