2010-07-06 56 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