2010-07-06 48 views
0

看來喜歡的東西是從ASP.NET網站的正常顯示停止我的錯誤。錯誤未顯示與UpdatePanel的

方案1 - 我有了大部分的UpdatePanel內內容的管理界面。當用戶的會話超時。你點擊一個按鈕,沒有任何反應。它不會將您重定向到主頁,並且不會向您提供錯誤消息。

方案2 - 我有某種形式的數據問題引發錯誤的 - 它發生在臨時環境,否則我只是調試代碼正常。但不是向我顯示錯誤,而是將底部的JavaScript類型感嘆號標記出來,並且需要快速點擊它以顯示彈出對話框。在IE中發生這種情況。在FF中沒有顯示任何錯誤消息。

我在這種情況下錯誤是Sys.WebForms.PageRequestManagerServerErrorException:序列不包含任何元素。然後它引用一個ScriptResource.axd ...所以基於這個錯誤信息,我遇到了麻煩,因爲我無法在我的開發環境中重現這個問題。我相信它通常涉及到一個linq語句引用沒有元素的東西,但不知道錯誤發生的位置或原因。但我也想知道爲什麼這個錯誤似乎是被抓,而不是顯示好看的老式例外:)

所以不知道它的一個UpdatePanel問題或一個ScriptManager相關的怪癖。我想我使用了錯誤的關鍵字,谷歌,因爲我無法找到任何人真的抱怨同樣的事情:(

感謝您的幫助!

+0

你對SE任何種類的日誌記錄邊?我強烈建議你至少包括例外記錄。這應該有助於你的第二種情況。 – 2010-07-06 05:52:41

+0

通過將數據返回到開發環境解決了第二個問題,以便我可以對其進行調試。由於錯誤不像其他asp.net頁面那樣正常報告,這一事實令人困惑。即。在Firefox中什麼也沒有,在IE中,我得到一個感嘆號圖標,我需要單擊..或者如果會話沒有超時。 – Jen 2010-07-07 23:53:43

回答

0

爲了您的第一個場景,它好像你可能需要通過javascript ajax調用來檢查用戶的會話是否仍然活動,如果沒有,則重定向到登錄頁面。

對於第二種情況,我建議使用類似ELMAH這樣的工具記錄服務器上的所有異常,它會給你一個簡單的用戶界面來查看異常的詳細信息。

+0

謝謝 - 但我不明白爲什麼正常的ASP.NET超時不能像正常..會話超時,他們應該被重定向到登錄屏幕。它適用於其他頁面 - 僅僅因爲一些未知的原因而不在這個頁面上。爲什麼我需要使用javascript ajax來檢查這個? – Jen 2010-07-07 23:55:02

+0

由於通過發出Ajax請求,您承擔了處理HTTP響應的全部責任,包括404錯誤等。通常的瀏覽器行爲不適用。這裏有一個鏈接可能會有所幫助:http://viralpatel.net/blogs/2009/02/handling-session-timeout-server-errors-http-ajax-session-ajax-session-timeout-problem.html – tbreffni 2010-07-09 14:56:26