2009-07-02 25 views
2

我``使我的web部件運行良好(我可以將其添加到頁面並使用它)。但是,如果我想將其移動到其他區域或修改該頁面上的任何其他Web部件,我會得到一個異常。可以添加我的自定義web部件,但無法修改任何webpart頁面

關於什麼可能是錯誤的任何想法?

也許它必須做一些事情,我的web部件有一個空區變量?但是webpart在頁面上顯示效果良好。下面的細節。

編輯:啊,不,我看到其他(原始的)web部件的Zone變量也是空的。無論如何,我不知道如何甚至digg和找出問題。

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

嘗試,如果以下任何解決方案的工作

thisthisthis

+1

解決方案處於第一個鏈接。 我正在使用一個函數,我通過SPWeb對象作爲參數,並在它的末尾,我處置。註釋掉web.Dispose(),它工作。 – 2009-07-02 10:18:57

+0

酷,而要記住的要點是SPContext.Current.Web不屬於你,所以永遠不要處置它。 – Kusek 2009-07-02 11:44:30

1

下面是一些故障排除的想法:

檢查的SharePoint日誌

由於例外情況沒有多大幫助,您可以嘗試檢查SharePoint日誌,並查看是否有任何其他錯誤同時發生,但未向UI報告。這些可能會提供更多的細節。對任何異常

如果沒有運氣,嘗試在工具/選項/調試禁用僅我的代碼

中斷調試器。這將確保您的代碼在Web部件之外發生錯誤時中斷。然後設置Debug/Exceptions以檢查所有CLR異常,以便在發生錯誤時SharePoint中發生的任何異常都會中斷。最後將Visual Studio調試器附加到w3wp.exe並訪問您的頁面。請注意,調試器會破壞任何異常,即使那些與此問題無關的異常也是如此。希望這會給你一個線索。

註釋代碼

如果不幫助縮小問題的範圍,我就開始註釋掉的Web部件代碼,直至錯誤不再出現。然後取消註釋,直到達到導致錯誤的確切線條。由於SaveChanges中的例外情況,這與保留Web部件屬性有關。那是我首先開始評論的地方。

相關問題