3

现在我的一个 asp.net 应用程序的使用率显着上升,出现了两个非常罕见的奇怪问题,而且我无法重现。

我不知道如何调试和解决这些问题。

这里有两个例子:

!IsPostBack我的一个 aspx 页面在(is true)上将会话状态值重置为 0 。但是,我在特定位置的一个用户经常会在该页面不是回发并且会话状态值没有在他的笔记本电脑上重置时访问该页面。(我的声明基于应用程序随后的行为,而不是在调试模式下运行)但是当我坐在他旁边使用相同的浏览器在我的笔记本电脑上运行应用程序时,代码有效并且会话状态在我的笔记本电脑上重置同时在同一个互联网连接上。当这个用户在家中在他的笔记本电脑上运行应用程序时,他有更好的互联网连接,他不会经常遇到问题。

我的应用程序中的一个 aspx 页面在运行将数据保存到DB. 几乎在 server.transfer 之后的所有时间,文本框都包含它们的默认值(因为它们应该自 以来!isPostback==True),但大约 1% 的时间文本框包含先前的值。我知道由于数据已保存,因此与服务器进行了往返。此问题发生在相同用户使用相同浏览器执行相同操作的相同电脑上。所以 99% 的时间它可以正常工作,而 1% 的时间他们做完全相同的事情却不能正常工作。

如果这些问题似乎是随机发生的,我该如何开始尝试找出导致这些问题的原因?

我怀疑互联网连接的质量是问题所在,因为它是一个正在发生变化的变量,但这些信息对我有什么帮助?

我不能通过在调试模式下运行我的应用程序来调试这些问题中的任何一个。

我正在使用Asp .Net 3.5C# 3.5并且该应用程序在IE 6-8. (IE 8在兼容模式下)

4

3 回答 3

8

我会将日志记录添加到发生问题的代码中。然后通知有问题的用户尝试并记下他们遇到问题的时间。获得日志和大致时间后,您可以进入并倒在这些日志上,看看是否有任何东西指向正确的方向。我还会查看服务器上的 IIS 和事件日志。

于 2012-07-16T18:33:09.130 回答
2

您可以安装Firefox Throttle插件来模拟慢速连接。在 ASP.NET 中可能会发生很多页面加载缓慢的情况。如果页面没有完全加载但项目是可点击的,ASP.NET 可能会对事件验证感到非常不安......等等

此外,我鼓励您开始记录和跟踪应用程序中的问题区域。然后,您可以将其与 IIS 请求日志关联起来,并相当准确地了解发生了什么。

于 2012-07-16T18:31:27.650 回答
0

看来您在使用Session State时遇到问题。默认情况下,ASP.NET 使用 InProc 会话状态模式,该模式使用服务器内存来存储值。在许多情况下,这可能会丢失或重置(应用程序池回收)。切换到SQLServer 会话状态可能会帮助您解决问题。

于 2012-07-16T18:37:32.153 回答