可以添加我的自定义webpart,但不能修改页面上的任何webpart

时间:2009-07-02 08:49:50

标签: sharepoint moss wss

我使我的webpart运行良好(我可以将其添加到页面并使用它)。但是,如果我想将其移动到不同的区域或修改该页面上的任何其他webpart,我将获得例外。

关于什么可能出错的任何想法?

也许它必须对我的Web部件有一个null区变量做些什么?但是webpart在页面上显示良好。详情如下。

编辑:啊,不,我看到其他(原始的)Web部件的Zone变量也为null。无论如何,我不知道如何挖掘并找出问题。

Exception occurred. (Exception from HRESULT: 0x80020009 (DISP_E_EXCEPTION)) 
Exception Details: Microsoft.SharePoint.WebPartPages.WebPartPageUserException: Exception occurred. (Exception from HRESULT: 0x80020009 (DISP_E_EXCEPTION))

Stack Trace:     

[WebPartPageUserException: Exception occurred. (Exception from HRESULT: 0x80020009 (DISP_E_EXCEPTION))]
   Microsoft.SharePoint.WebPartPages.SPWebPartManager.SaveSomeChanges(SPLayoutProperties layoutProperties) +897
   Microsoft.SharePoint.WebPartPages.WebPart.SaveSomeChanges(SPLayoutProperties layoutProperties) +52
   Microsoft.SharePoint.WebPartPages.SPWebPartManager.WPSaveSomeChanges(SPLayoutProperties layoutProperties) +83
   Microsoft.SharePoint.WebPartPages.SPWebPartManager.ApplyChangeList(String changeString) +865
   Microsoft.SharePoint.WebPartPages.SPWebPartManager.OnLoad(EventArgs e) +398
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

2 个答案:

答案 0 :(得分:2)

如果以下任何解决方案有效,请尝试

this或  this或  this

答案 1 :(得分:1)

以下是一些问题排查方法:

检查SharePoint日志

由于异常没有多大帮助,您可以尝试检查SharePoint日志,看看是否有任何其他错误同时发生,但未向UI报告。这些可能会提供更多细节。

在任何例外情况下打破调试程序

如果没有运气,请尝试在工具/选项/调试中禁用“仅我的代码”。这将确保在Web部件之外发生错误时代码中断。然后设置Debug / Exceptions以检查所有CLR异常,以便SharePoint中发生的任何异常都将在错误处中断。最后将Visual Studio调试器附加到w3wp.exe并访问您的页面。请注意,调试器将在任何异常中断,即使是与此问题无关的异常。希望这会给你一个线索。

评论代码

如果这对缩小问题没有帮助,我会开始评论Web部件代码,直到错误不再发生。然后取消注释,直到到达导致错误的精确线。作为SaveChanges中的例外,它与持久化Web部件属性有关。这就是我首先开始评论的地方。