我使我的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
答案 0 :(得分:2)
答案 1 :(得分:1)
以下是一些问题排查方法:
检查SharePoint日志
由于异常没有多大帮助,您可以尝试检查SharePoint日志,看看是否有任何其他错误同时发生,但未向UI报告。这些可能会提供更多细节。
在任何例外情况下打破调试程序
如果没有运气,请尝试在工具/选项/调试中禁用“仅我的代码”。这将确保在Web部件之外发生错误时代码中断。然后设置Debug / Exceptions以检查所有CLR异常,以便SharePoint中发生的任何异常都将在错误处中断。最后将Visual Studio调试器附加到w3wp.exe并访问您的页面。请注意,调试器将在任何异常中断,即使是与此问题无关的异常。希望这会给你一个线索。
评论代码
如果这对缩小问题没有帮助,我会开始评论Web部件代码,直到错误不再发生。然后取消注释,直到到达导致错误的精确线。作为SaveChanges中的例外,它与持久化Web部件属性有关。这就是我首先开始评论的地方。