Sharepoint Smartpart问题

时间:2009-11-23 14:26:00

标签: sharepoint moss wss web-parts smartpart

我对Sharepoint编程非常陌生,就像我团队的其他成员一样。我们决定使用智能部件作为我们在sharepoint和我们的开发工作之间的桥梁。经过一番努力,我们开始运行。但问题是,当我使用一个简单的用户控件进行测试时,使用sharepoint om代码获取文档库中的文件名称,sharepoint给了我一个相当有用的“未知错误已经发生”。这个代码在aspx页面内工作正常。我编写了另一个简单的测试用户控件,它只执行一个Response.Write()行来检查是否存在执行代码的问题,但是这个也适用于智能部分。

代码就像

protected void Button1_Click(object sender, EventArgs e)
{
            Microsoft.SharePoint.SPSite srv1 =
             new SPSite("http://server:port/");

            SPWeb web = srv1.OpenWeb();
            var list = web.GetFolder("http://server:port/documentLibrary");
            for (int i = 0; i < list.Files.Count; i++)
            {
                ListBox1.Items.Add(list.Files[i].Name);
            }
}

我们可能遗失或做错了什么? 非常感谢...

3 个答案:

答案 0 :(得分:2)

AFAIK,自SharePoint 2003以来,并不真正需要智能部件。为什么不创建常规用户控件并将其放在/ ControlTemplates文件夹中?如果合适,将其部署为具有相关代码的功能的一部分......

此外,更新Web.Config文件以显示有意义的错误消息:

  • 的customErrors =关
  • 通过向SafeMode标记添加CallStack =“true”来启用堆栈跟踪
  • 将编译调试属性设置为“true”

答案 1 :(得分:1)

请注意,您通常应将SPSite和SPWeb对象包装在using子句中,因为这些是非托管对象,如下所示: http://msdn.microsoft.com/en-us/library/aa973248.aspx

protected void Button1_Click(object sender, EventArgs e)
{
 using (Microsoft.SharePoint.SPSite srv1 = new SPSite("http://server:port/"))
 {
  using (SPWeb web = srv1.OpenWeb())
  {
   var list = web.GetFolder("http://server:port/documentLibrary");
   for (int i = 0; i < list.Files.Count; i++)
   {
    ListBox1.Items.Add(list.Files[i].Name);
   }
  }
 }
}

答案 2 :(得分:0)

好的,它已经解决了,感谢大家提供的信息和帮助。

关于信任级别,我在相关网站集的web.config文件中将推力级别设置为“WSS_Medium”。

<trust level="WSS_Medium" originUrl="" />

我在Jan Tielen的博客here

找到了这个解决方案(以及一些关于主题的更多相关信息)