2011-03-14 56 views
0

我正在嘗試追查用戶在ASP.NET 3.5網頁上出現的錯誤。整個錯誤是標準的「無法找到與存儲在ViewState中的原始值中的給定鍵匹配的行,確保'鍵'字典包含與從前一個選擇操作返回的行相對應的唯一鍵值。更新後。我知道這意味着視圖狀態正在抱怨它認爲有些選項是從無效的下拉框回傳的。InvalidOperationException - 您能從中獲得更多信息嗎?

這裏是扭曲,生產頁面的代碼幾乎整整一年沒有改變。根據生產頁面的aspnet_WebEvents_Events表,這是第一次發生此錯誤。所以我所做的就是在本地提取項目,並通過本地服務器上的SQL查詢製作用戶數據的副本。它沒有中斷。所以我假定來源已經改變,沒有部署。長話短說,我最終在生產服務器上爲用戶製作了一個副本,並再次通過SQL查詢更改了壞版本的用戶ID。用戶認爲它是固定的,一切都很好,但是原始複製件的斷點繼續斷裂。我不能重新創建這個錯誤,即使我有什麼是通過SQL查詢錯誤行的確切副本。有沒有辦法獲得關於這個錯誤的更多信息?是否有可能讓LinqDataSource告訴我它認爲哪個值不好? TIA!

回答

0

唯一的辦法是重現錯誤並在導致異常的行上放置一個斷點。然後您可以瀏覽調用堆棧以查看錯誤實際發生的位置。

即使即使最後一個陳述並非總是如此。有時會出現由以前執行的代碼導致的錯誤,例如準備要保存在數據庫中的數據列表時 - 如果準備代碼錯誤,保存到數據庫的代碼將失敗,並且必須費盡心思調查當前情況以找出問題的根源。

但事實依然是:如果您無法重現錯誤,您不可能修復它。