尝试部署Web部件时出错

时间:2008-10-16 06:36:46

标签: c# sharepoint web-parts

我刚刚编写了一个新的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 个答案:

答案 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)可能不正确。在这里发布,应该迅速找到错误。