我真的不知道該從哪裏開始。我得到:將網站移至新服務器後無法加載視圖狀態錯誤
`Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request.`
將網站移動到新的服務器後。完全相同的代碼適用於我的其他服務器。當我提交我的一個表單時(但是並未在所有表單提交中執行),就會發生這種情況。
任何想法是什麼可以導致這個,所以我有地方看?
使用:ASP.NET 2
編輯:我添加一些用戶控件的佔位符在運行時動態但這同樣的代碼是我的另一臺服務器上工作正常。我已經嘗試在添加新的控件之前清除控件(正如我看到的一篇文章),但它沒有幫助。
編輯2:似乎回發只是失敗。它不會進入按鈕的onClick代碼,所以有些東西是deffintiely擰。如果我嘗試/趕上例外似乎所有的控件仍然添加成功...設置我的動態UC的EnableViewState = false解決這個問題特別的錯誤。編輯3:好吧,我想我可能會處理髮生的事情。出於某種原因舊服務器上的表單動作是default.aspx?action=amend
,但新服務器顯示爲amend.html?action=amend
,所以我認爲重寫模塊在IIS中搞亂了。這將解釋控制添加問題,因爲該動作發生了2次(我認爲)。我會研究重寫模塊,看看是否有錯誤,然後回發。
兩臺服務器都有相同版本的.NET?我在網上發現了一些案件,當時它是由一些兼容性問題導致的.net2 vs .net3.5,所以也許值得檢查。 – walther 2012-04-04 09:10:36
是的,兩臺服務器不幸的有相同的版本。 – webnoob 2012-04-04 09:19:56
您是否嘗試過識別導致此問題的控件?你是否動態添加一些控件? – walther 2012-04-04 09:30:41