2009年6月25日 星期四

糟糕,ASP.NET 出現'WebForm_PostBackOptions' 未被定義的錯誤

問題說明:ASP.NET應用程式執行中出現'WebForm_PostBackOptions' 未被定義的錯誤訊息,該怎麼辦?
問題分析:最近有個機會需要將MySQL的日期資料轉為MsSQL的日期資料,在未查明MySQL的日期資料型別前;直接使用long.Paser的Method將資料解析為數值後,直接new DateTime(long),結果就出現了致命性的錯誤;不但AJAX出現下面的問題:
訊息: 語法錯誤
行: 1
字元: 1
程式碼: 0
URI: http://master.cursorinfo.com.tw:7000/AideRegister/WebResource.axd?d=5-EZy3-7lrBUw0173cFa5A2&t=633813918869843750
而且,
ASP.NET應用程式執行中出現'WebForm_PostBackOptions' 未被定義的錯誤。
請教微軟技術諮詢中心沈先生後得到的解答是:
您的錯誤訊息應是頁面直接報錯,目前看來時間戳記是上周四,造成程式碼有問題,可能Web Server上的時間有誤。
沒錯,就是ASP.NET的時間戳記出現了混淆的狀態。

解決方案:
依據沈先生建議,在網路上搜尋解決方案,得到的正解是:重新安裝.NET Framework 2.0即可。
可是重新安裝.NET Framework 2.0有些步驟須注意,因此,將相關方法說明如下,提供有此需求者減少摸索的時間。

重新安裝.NET Framework 2.0步驟:
1.開起系統控制台的新增移除程式,確定已安裝的.NET Framework 2.0的版本。
2.下載該版本的可轉散發套件。
3.將該套件解壓縮在已知的路徑待用。
4.找到新增移除程式中的.NET Framework 2.0,點選這個套件後,在更新的資料中,找到『按這裡取得資源資訊』,然後在彈出的視窗中,找到『修復』按鈕。
5.點選修復按鈕後,進行修復工作。如果原安裝的解壓縮檔已刪除,系統會顯示瀏覽安裝來源的視窗,只要將檔案來源指向剛才解壓縮後的資料夾,即可進行修復工作。

後記:
1.詳查網路資源後,才知道MySQL的日期資料,是unix日期型別,只要使用FROM_UNIXTIME()的函數,就可以解析該日期資料。(MySQL支援該函數)
2.MySQL發佈了Connector元件,可以讓.NET輕鬆存取MySQL資料庫;相當不錯的元件。Thanks.

沒有留言: